当涉及到Spring应用程序时,我对两个ApplicationContext和ServletContext感到困惑。我知道每个Spring应用程序只有一个ApplicationContext,每个Web应用程序也只有一个ServletContext。为了启动ApplicationContext和ServletContext的值,在web.xml中,我们将在上下文中添加一些内容-param标记。
这就是让我困惑的地方。这两者之间的有什么不同(我知道ApplicationContext有一些方法可以使用bean)?,当,我们使用,,当,我们使用
发布于 2015-08-11 05:16:59
Servlet上下文:
它是在部署Servlet应用程序时初始化的。Servlet上下文保存整个servlet应用程序的所有配置(init-param、上下文-params等)。
申请背景:
这是一个特定于Spring的东西。它由Spring初始化。它保存在spring配置文件中定义的bean的所有bean定义和生命周期。Servlet-Context对这些事情一无所知。
Spring中有两种类型的上下文:父上下文和子上下文。
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>role-purpose-of-contextloaderlistener-in-spring
Spring-ContextLoaderListener-And-DispatcherServlet-Concepts
当spring容器启动时,它从配置文件中读取所有bean定义,并创建bean对象,并管理bean对象的生命周期。此配置完全是可选的。
DispatcherServlet对ContextLoaderListener
/declaring-spring-bean-in-parent-context-vs-child-context
春季儿童上下文( WebApplicationContext /子上下文)
<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>当spring应用程序启动时,它将查找spring配置文件myWebApplication-servlet.xml。它将读取所有bean定义,并创建和管理bean对象的生命周期。如果父spring上下文可用,它将将子spring上下文与父spring上下文合并。如果没有Spring父上下文可用,应用程序将只具有子spring上下文。
发布于 2015-08-11 01:56:40
它们是不同的东西。每个基于Servlet技术的Java应用程序都有一个servlet上下文,不管它是否是一个spring应用程序。相反,ApplicationContext是Spring的东西;用非常简单的术语来说,它是一个容纳Spring的容器。
为了启动ApplicationContext和ServletContext的值,在web.xml中,我们将在上下文-param标记中添加一些内容。
如果为此引用一个示例,会有帮助,因为据我所知,上下文-param用于ServletContext,而不是ApplicationContext。
更新
您可以使用context-param提供根应用程序上下文配置文件的位置,如下所示。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/root-context.xml
/WEB-INF/applicationContext-security.xml
</param-value>
</context-param>发布于 2018-06-30 09:55:36
ApplicationContext是Spring的容器。
它用于将Spring的配置连接到一起,并将它们用于应用程序。
如果您想检索Spring的信息,请使用ApplicationContext。
如果您想获取/设置所有Servlet共享的属性,请使用ServletContext。
https://stackoverflow.com/questions/31931848
复制相似问题