在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