我试图理解Web应用程序的web.xml和applicationcontext.xml之间的控制流。请问有人能够解释哪个先加载吗?
我试图理解Web应用程序的web.xml和applicationcontext.xml之间的控制流。请问有人能够解释哪个先加载吗?
Spring MVC是在Servlet API基础上构建的框架。因此,它需要一个Servlet容器。
您的Servlet容器找到 web.xml 或使用任何其他部署策略(取决于容器),找到要实例化的
Servlet 实现(或通过
@WebServlet )并实例化它们。
其中之一
Servlet 实现是Spring的
DispatcherServlet ,它在初始化的一部分中生成一个
ApplicationContext ,然后使用它来配置其控制器和调度请求。
Servlet容器(Tomcat、Jetty等)将在启动时读取web.xml并实例化其中定义的各种servlet/filter/listener。其中一个过滤器或servlet很可能由Spring提供,然后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上下文,其中Spring bean“ live”。