spring boot 靜態資源

在spring-boot 2.0以前,使用WebMvcConfigurerAdapter 能夠設置靜態資源的映射規則等操做,html

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // super.addViewControllers(registry);
        //瀏覽器發送 /請求來到 index
        registry.addViewController("/").setViewName("index");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**")
                .addResourceLocations("/public-resources/")
                .setCacheControl(CacheControl.maxAge(1, TimeUnit.HOURS).cachePublic());
    }


    //全部的WebMvcConfigurerAdapter組件都會一塊兒起做用
    @Bean //將組件註冊在容器
    public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){
        WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
            @Override
            public void addViewControllers(ViewControllerRegistry registry) {
                registry.addViewController("/index.html").setViewName("index");
            }
        };
        return adapter;
    }
}

spring-boot 2.0之後因爲WebMvcConfigurerAdapter廢棄,則換成了 extends WebMvcConfigurationSupport 或者 implements WebMvcConfigurerjava

使用 WebMvcConfigurationSupportweb

@Configuration
public class WebConfigSupport extends WebMvcConfigurationSupport {


    /**
     * 添加靜態資源文件,外部能夠直接訪問地址
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //須要配置1:----------- 須要告知系統,這是要被當成靜態文件的!
        //第一個方法設置訪問路徑前綴,第二個方法設置資源路徑
        registry.addResourceHandler("/wgm/**").addResourceLocations("classpath:/static/wgm/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
    }


}

使用 WebMvcConfigurerspring

@Configuration
public class WebConfig implements WebMvcConfigurer {


    /**
     * 添加靜態資源文件,外部能夠直接訪問地址
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //須要配置1:----------- 須要告知系統,這是要被當成靜態文件的!
        //第一個方法設置訪問路徑前綴,第二個方法設置資源路徑
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
    }

}

觀察WebMvcAutoConfiguration 源碼咱們能夠看到瀏覽器

當咱們使用WebMvcConfigurationSupport時,spring-boot不會進行WebMvcAuotConfiguration中的自動配置 ide

相關文章
相關標籤/搜索