Servlet Context:
它在部署 Servlet 应用程序时初始化。Servlet Context 保存整个 Servlet 应用程序的所有配置(init-param、context-params 等)。
应用程序上下文:
这是一个春天特有的东西。它由Spring初始化。它包含弹簧配置文件中定义的所有Bean定义和Bean的生命周期。Servlet-Context对这些事情一无所知。
Spring中有两种类型的上下文父项和子项。
春季父上下文(应用程序上下文/根上下文)
<listener>
<listener-lass>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/service-context.xml,
/WEB-INF/dao-context.xml,
/WEB-INF/was-context.xml,
/WEB-INF/jndi-context.xml,
/WEB-INF/json-context.xml
</param-value>
</context-param>
角色-用途-上下文加载器-在弹簧
中-Spring-ContextLoaderListener-And-DispatcherServlet-Concepts
当 spring 容器启动时,它会从配置文件中读取所有 bean 定义并创建 bean 对象,并管理 Bean 对象的生命周期。此配置是完全可选的。
DispatcherServlet vs ContextLoaderListener
/declaring-spring-bean-in-parent-context-vs-child-context
春季子上下文 ( WebApplicationContext / Child Context )
<servlet>
<servlet-name>myWebApplication</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myWebApplication</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
当弹簧Web应用程序启动时,它将查找弹簧豆配置文件myWebApplication-servlet.xml。它将读取所有 Bean 定义,并创建和管理 Bean 对象的生命周期。如果父弹簧上下文可用,它将子弹簧上下文与父弹簧上下文合并。如果没有可用的 Spring 父上下文,则应用程序将仅具有子 Spring 上下文。