当前位置: 首页 > 知识库问答 >
问题:

是什么设置导致ContextLoaderListener的(根上下文)成为DispatcherServlet的上下文之上的“父”上下文?

韩羽
2023-03-14

同时,Puppy资源将更多地位于webMvc级别,并加载到DispatcherServlet的上下文中。

从我刚才读到的内容(现在我很有希望理解)来看,根上下文实际上是DispatcherServlet创建的上下文的‘父’上下文。这意味着根上下文中的bean实际上可以自动连接/注入到DispatcherServlet创建的上下文中的任何bean中。我只是了解了“嵌套”上下文的概念。这准确吗?

如果这是准确的,那么配置在哪里设置以使根上下文成为“父”上下文呢?当前,当我配置servlet/listener时,我通过WebApplicationInitializer的自定义实现来完成,其中我只需创建两个上下文,分别将它们加载到DispatcherServlet实例和ContextLoaderListener实例中,然后将它们分别注册到servlet中。我猜在其中的某个地方,ContextLoaderListener的应用程序上下文会自动设置为“parent”。

有人能简单解释一下吗?谢谢你。

共有1个答案

王骏
2023-03-14

该行为内置在DispatcherServlet中。javadoc定义根应用程序上下文。

只有ContextLoaderListener加载的根应用程序上下文(如果有的话)将被共享。

ContextLoaderListener的javadoc还声明

如果给定的上下文还没有父上下文,则根应用程序上下文将被设置为父上下文。

你会自动得到这个行为。

同样是在javadoc中,

 类似资料:
  • 问题内容: 在Android编程中,Context类的确切含义是什么? 问题答案: 简单地说: 顾名思义,它是应用程序/对象当前状态的上下文。它使新创建的对象了解正在发生的事情。通常,您调用它来获取有关程序另一部分(活动和程序包/应用程序)的信息。 您可以通过调用获取上下文,,或(当在扩展,从一类Context,如应用程序,活动,服务和IntentService类)。 上下文的典型用法: 创建新对

  • 我有一个使用子/父上下文关系的Spring应用程序。这样做的原因是为了确保子上下文从父上下文继承bean/资源,然后根据需要添加更多bean/资源来覆盖它们。但是,当子上下文关闭时(退出try/catch作用域),它开始对它引用的所有bean进行清理,包括父作用域中的bean。这是不可取的,因为我需要重用父上下文来创建另一个子上下文,但是现在它是垃圾,因为它包含了一堆已处理/关闭的bean。 问题

  • 问题内容: 我是django初学者,所以我试图理解上下文和上下文处理器的概念。 什么是上下文,为什么要使用它? 你是否需要上下文才能在模板中使用它? 上下文和上下文处理器是否相同? 非常感谢你的回复。提前致谢! 问题答案: 当你使用Django模板时,它会被编译一次(并且只能编译一次)并存储以供将来使用,作为优化。模板可以在双花括号中包含变量名,例如 和。 一个背景是变量名称为字典键和它们的值的值

  • 我们希望更改Tomcat Web应用程序的上下文根,并让旧URL将用户引导到新命名的应用程序。 一种方法是部署上下文根为newappname的应用程序和另一个上下文根为oldappname的应用程序,并让它引导用户找到新的URL。 这个简单的选项对我们不开放,公司内部政策禁止在同一个Tomcat实例中运行多个应用程序(不可协商)。 我记得GlassFish有一个“备用文档根”的概念,可用于为应用程

  • 本文向大家介绍什么是上下文切换?相关面试题,主要包含被问及什么是上下文切换?时的应答技巧和注意事项,需要的朋友参考一下 多线程编程中一般线程的个数都大于 CPU 核心的个数,而一个 CPU 核心在任意时刻只能被一个线程使用,为了让这些线程都能得到有效执行,CPU 采取的策略是为每个线程分配时间片并轮转的形式。当一个线程的时间片用完的时候就会重新处于就绪状态让给其他线程使用,这个过程就属于一次上下文

  • 本文向大家介绍什么是有界上下文?相关面试题,主要包含被问及什么是有界上下文?时的应答技巧和注意事项,需要的朋友参考一下 有界上下文是领域驱动设计的核心模式。 DDD 战略设计部门的重点是处理大型模型和团队。 DDD 通过将大型模型划分为不同的有界上下文并明确其相互关系来处理大型模型。