小编典典

Spring 中 ContextLoaderListener 的作用/目的?

all

我正在学习我的项目中使用的 Spring Framework 。 我在web.xml 文件中找到了
ContextLoaderListener 条目。但无法弄清楚它究竟如何帮助开发人员? __

ContextLoaderListener 的官方文档中,它说要启动
WebApplicationContext 。关于
WebApplicationContext
JavaDocs 说:

为 Web 应用程序提供配置的接口。

但是我无法理解我使用 ContextLoaderListener 实现了什么,它在内部初始化了 WebApplicationContext

根据我的理解ContextLoaderListener 读取 Spring 配置文件(在 web.xml 中针对
contextConfigLocation 给出值),对其进行解析并加载该配置文件中定义的 单例 bean 。 同样,当我们要加载 原型 bean
时,我们将使用相同的 web 应用程序上下文来加载它。 因此,我们使用ContextLoaderListener 初始化 web
应用程序,以便我们提前读取/解析/验证配置文件,并且每当我们想要注入依赖项时,我们都可以立即进行,不会有任何延迟。这种理解正确吗?


阅读 132

收藏
2022-08-15

共1个答案

小编典典

你的理解是正确的。这ApplicationContext是你的 Spring bean
所在的地方。的目的有ContextLoaderListener两个:

  1. 将 theApplicationContext的生命周期与ServletContextand的生命周期联系起来

  2. 自动创建ApplicationContext,因此您不必编写显式代码来创建它 - 这是一个方便的功能。

另一个方便的事情ContextLoaderListener是它创建一个WebApplicationContext并提供对ServletContextvia
ServletContextAwarebean
getServletContext方法的访问。

2022-08-15