use*_*426 17 java spring spring-mvc
Pav*_*ral 41
web.xml.ContextLoaderListener被实例化(如果定义为<listener>内部的web.xml)由servlet容器.
ContextLoaderListenerWebApplicationContext使用应用程序上下文XML配置创建新的BeanFactory在应用程序上下文中注册和实例化.DispatcherServlet正在由servlet容器实例化.
DispatcherServlet使用ROOT上下文作为其父级创建自己的WebApplicationContext(WEB-INF/{servletName}-servlet.xml默认情况下).BeanFactory在应用程序上下文中注册并实例化.DispatcherServlet 注册一些默认bean,以防你自己没有提供它们.Servlet 3的功能可以实现这一功能.
ServletContainerInitializer通过Java 实现的类ServiceLoader.SpringServletContainerInitializer是由servlet容器找到并实例化的.WebApplicationInitializer实现.WebApplicationInitializer被发现(顺便说一句,检查它的JavaDoc !!!)和实例化的SpringServletContainerInitializer.
WebApplicationInitializerWebApplicationContext使用XML或@Configuration基于配置创建新的ROOT .WebApplicationInitializerWebApplicationContext使用XML或@Configuration基于配置创建新的servlet .WebApplicationInitializerDispatcherServlet使用上一步中的上下文创建并注册新的.基于Java的方法更灵活.您可以将上下文创建保留到DispatcherServlet甚至整个实例化DispatcherServlet到servlet容器(只注册servlet DispatcherServlet.class而不是它的实例).