如果既想要使用spring-boot对spring-mvc的自动配置,又想要对自动配置进行扩展,添加一些用户自己的配置。

用户只需要写一个实现了WebMvcConfiguration接口的配置类,重写相关方法就能够添加自己的配置了。

(在spring-boot2.0中,WebMvcConfigurationAdapter已废弃)

(每个方法的具体作用请自己看接口中的注释,这里不进行赘述)

注意:

一、如果在spring-boot中想要使用自动配置,那么就不能再配置类中使用@EnableWebMvc注解,而且也不能让配置类继承WebMvcConfigurationSupport类。

原因:

(1)使用@EnableWebMvc注解,在底层是导入了一个继承了WebMvcConfigurationSupport的配置类,所以,使用@EnableWebMvc注解那就相当于给spring添加了一个继承了WebMvcConfigurationSupport的配置类。

(2)在spring-boot中使用继承WebMvcConfigurationSupport的配置类,那就相当于放弃了spring-boot对于spring-mvc模块的自动配置功能,一切关于springmvc的配置要自己进行配置了。

 

二、如果在spring-boot中使用spring-mvc,不想让spring-boot的自动配置生效,而是想要自己完全自定义springmvc的配置,有两种方式:

(1)写一个配置类(带@Configuration注解的类),然后给该配置类添加@EnableWebMvc注解即可,这个时候对springmvc进行配置就几乎都需要用户自己配置了,比如  拦截器、静态资源配置、视图解析器等等。。。

此时,配置有两种方式:

   a. 配置类实现WebMvcConfiguration接口,因为是基于java8的,所以该接口的方法都是default的空方法,通过重写该接口中的方法添加各种配置。(推荐使用这种)

   b.配置类继承WebMvcConfigurationSupport类,该类实现了WebMvcConfiguration接口,默认添加了一些基本的配置,用户通过重写相应的方法添加更多配置。

 

(2) 让配置类继承WebMvcConfigurationSupport,@EnableWebMvc底层其实就是使用了WebMvcConfigurationSupport。。

只要配置类继承了WebMvcConfigurationSupport,那么spring-boot就不会对web-mvc进行自动配置了。

 

10-07 14:18