因为继承前者会导致自动配置失效,而使用后者则不必担心此问题,只需要在类上加上@EnableWebMvc注解。看到这里我们应该明白了MVC的组件是如何添加到IOC容器中的,但是DispatcherServlet又是怎么获取到它们的呢?回到之前的代码中,在DispatcherServlet这个类中有一个onRefresh方法,这个方法又调用了initStrategies方法完成了MVC九大组件的注册:以initHandlerMappings为例,其它组件实现逻辑基本一样。以上就就是MVC HandlerMapping组件的初始化逻辑,其它组件实现逻辑相同,下面不再分析。实际上这个方法不止完成了上面两个映射关系,还有下面两个:

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明

这一次搞懂SpringMVC原理说明