Spring-如何绑定applicationContext与servletContext的生命周期
一.applicationContext对象的生命周期
1.applicationContext是容器对象,一创建时配置的所以对象都会被创建出来,我们希望是创建一份即可,而且在项目运行期间,类都能够在容器中获取到实例;
2.applicationContext的生命周期希望是能够跟servletContext一样长,即随项目的创建而创建,关闭而摧毁;可以通过servletContext的监听器的生命周期方法中将applicationContext跟servletContext绑定在一起共生死
3.既然applicationContext在servletContext的监听器的生命周期方法中,就可以获得到事件源即servletContext,进而可以获取到application域;
4.获取application域有什么用?可以把applicationContext放到application域中,到时候想要获取容器对象时,只需要获取application域对象,根据键值对的方式取得容器对象
二.Spring的ContextLoaderListener监听器
1.根据上面的理论是可以将applicationContext与servletContext的生命周期绑定一起,不过spring已经写好了一个监听器用于容器对象和servletContext的绑定
2.在web.xml中配置该监听器(得导一个web包),如图:
3.配置完监听器后还不够,还得告诉它sping配置文件在哪,所以还得配置参数路径,参数名必须是contextConfigLocation,值表示到类路径下加载applicationConetxt.xml的文件,如图:
4.要注意的是我们的spring配置文件的命名和位置是任意的,也就是如果你配置文件丢三落四的话,在web.xml里得配相应的路径,所以建议还是统一下路径在src的applicationContext.xml
三.获取容器对象
1.想要获取容器,按正常逻辑的话我们是得获取applicaiton域对象,根据键来获取;不过这个键特别长,所以spring特意提供了一个工具类和方法,只需要我们把servletContext对象给该方法,返回一个我们所需要的容器对象;如图:
applicationContext与servletContext的生命周期
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~