首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ApplicationContext和ServletContext

ApplicationContext和ServletContext
EN

Stack Overflow用户
提问于 2015-08-11 01:38:30
回答 5查看 46.2K关注 0票数 41

当涉及到Spring应用程序时,我对两个ApplicationContext和ServletContext感到困惑。我知道每个Spring应用程序只有一个ApplicationContext,每个Web应用程序也只有一个ServletContext。为了启动ApplicationContext和ServletContext的值,在web.xml中,我们将在上下文中添加一些内容-param标记。

这就是让我困惑的地方。这两者之间的有什么不同(我知道ApplicationContext有一些方法可以使用bean)?,当,我们使用,,当,我们使用

EN

回答 5

Stack Overflow用户

发布于 2015-08-11 05:16:59

Servlet上下文:

它是在部署Servlet应用程序时初始化的。Servlet上下文保存整个servlet应用程序的所有配置(init-param、上下文-params等)。

申请背景:

这是一个特定于Spring的东西。它由Spring初始化。它保存在spring配置文件中定义的bean的所有bean定义和生命周期。Servlet-Context对这些事情一无所知。

Spring中有两种类型的上下文:父上下文和子上下文。

Spring父上下文(应用程序上下文/根上下文)

代码语言:javascript
复制
  <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 /子上下文)

代码语言:javascript
复制
<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上下文。

票数 36
EN

Stack Overflow用户

发布于 2015-08-11 01:56:40

它们是不同的东西。每个基于Servlet技术的Java应用程序都有一个servlet上下文,不管它是否是一个spring应用程序。相反,ApplicationContext是Spring的东西;用非常简单的术语来说,它是一个容纳Spring的容器。

为了启动ApplicationContext和ServletContext的值,在web.xml中,我们将在上下文-param标记中添加一些内容。

如果为此引用一个示例,会有帮助,因为据我所知,上下文-param用于ServletContext,而不是ApplicationContext。

更新

您可以使用context-param提供根应用程序上下文配置文件的位置,如下所示。

代码语言:javascript
复制
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/root-context.xml
        /WEB-INF/applicationContext-security.xml
    </param-value>
</context-param>
票数 18
EN

Stack Overflow用户

发布于 2018-06-30 09:55:36

ApplicationContext是Spring的容器。

它用于将Spring的配置连接到一起,并将它们用于应用程序。

如果您想检索Spring的信息,请使用ApplicationContext。

如果您想获取/设置所有Servlet共享的属性,请使用ServletContext。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31931848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档