在配置mvc时 发现WebMvcConfigurationAdapter已经过时 网上推荐使用WebMvcConfigurationSupport 但是WebMvcConfigurationSupport会使 @EnableAutoConfiguration中的默认配置无效 现列举几种配置方法和效果
方法一:extends WebMvcConfigurationAdapter 重写父类方法:
@Configuration public class MyMvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); } }
效果:依旧使用Spring Boot的@EnableAutoConfiguration中的设置 但是 WebMvcConfigurerAdapter已经过时
拿webjars路径举例:
方法二:extends WebMvcConfigurationAdapter + @EnableWebMvc 重写父类方法:
@Configuration @EnableWebMvc public class MyMvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); } }
效果:不使用Spring Boot的@EnableAutoConfiguration中的设置 完全掌控MVC配置
方法三:extends WebMvcConfigurationSupport
@Configuration public class MyMvcConfig extends WebMvcConfigurationSupport { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); } }
效果:不使用Spring Boot的@EnableAutoConfiguration中的设置 完全掌控MVC配置 而且父类不是过时的
拿webjars路径举例:
如果对于有一条线很不爽的完美主义者 推荐使用第四种方法:
implement WebMvcConfigurer:
@Configuration public class MyMvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); } }
效果:依旧使用Spring Boot的@EnableAutoConfiguration中的设置
仍然拿webjars路径举例: