所谓的@EnableWebMvc全面接管SpringMVC的自动配置,是指@EnableWebMvc注解会使SpringMVC的自动配置失效,原理如下:
1、查看@EnableWebMvc的源码,如下图:
即导入了DelegatingWebMvcConfiguration.class类,查看该类的源码,如下图:
即导入的类继承自WebMvcConfigurationSupport类,所以也理解为导入了WebMvcConfigurationSupport类
2、查看SpringMVC的自动配置类WebMvcAutoConfiguration,内容如下图:
即SpringMVC的自动配置类生效的一个前提条件是容器中不能含有WebMvcConfigurationSupport.class类;
而我们在步骤1中讲到,当使用@EnableWebMvc注解的时候,会向容器中导入WebMvcConfigurationSupport类,
所以会导致SpringMVC的自动配置失效。
理解不到之处,望指正。