尝试了解web应用程序的web.xml和applicationcontext.xml之间的控制流程。有人可以先解释哪些加载?
答案 0 :(得分:6)
Spring MVC是一个建立在Servlet API之上的框架。因此,它需要一个Servlet容器。
您的Servlet容器找到web.xml
或使用任何其他部署策略(取决于容器),找到要实例化(或通过Servlet
)的@WebServlet
实现并实例化它们。
其中一个Servlet
实现是Spring的DispatcherServlet
,作为其初始化的一部分,它生成一个ApplicationContext
,然后用它来配置其控制器和调度请求。
答案 1 :(得分:3)
servlet容器(Tomcat,Jetty等)将在启动时读取web.xml并实例化那里定义的各种servlet / filters / listener。其中一个过滤器或servlet最有可能由Spring提供,然后它将读取applicationContext.xml并初始化Spring上下文。
例如,您的web.xml可能包含以下内容:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
该servlet将读取并创建Spring bean,其中Spring bean“live”。