一、对spring-boot自动配置的spring-mvc进行扩展配置(比如添加拦截器之类的)
只需要三个步骤:
1、写一个类,实现WebMvcConfiguration接口,重写相关方法就能够添加相应的配置。
2、把该类实例扫描进spring容器作为bean就行。 (使用@Component、@Configuration注解都可以使它被扫描为bean,记得要放在能够被扫描的包中)
原理:springboot把实现了WebMvcConfiguration接口的bean都看作为springmvc的扩展配置
(在spring-boot2.0中,WebMvcConfigurationAdapter已废弃)
(每个方法的具体作用请自己看接口中的注释,这里不进行赘述)
二、全面接管web-mvc模块,不要springboot对web-mvc的自动配置(web-mvc的配置全部由用户配置)有两种方式:
(1) 添加一个WebMvcConfigurationSupport类型的bean,只要spring容器中存在WebMvcConfigurationSupport及其子类的bean,那么spring-boot就不会对web-mvc进行自动配置了,而是根据这个WebMvcConfigurationSupport实例进行配置。
(2)写一个配置类(带@Configuration注解的类),然后给该配置类添加@EnableWebMvc注解即可。
其实@EnableWebMvc底层其实就是@import了WebMvcConfigurationSupport的一个子类配置类。
这个时候对springmvc进行配置就几乎都需要用户自己配置了,@EnableWebMvc只会帮你配置好一些基本的springmvc功能。