通过ServletContext取Spring的WebApplicationContext
2024-09-04 21:28:12
当 Web 应用集成 Spring 容器后,代表 Spring 容器的 WebApplicationContext 对象将以WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
为键存放在 ServletContext 属性列表中。您当然可以直接通过以下语句获取 WebApplicationContext:
WebApplicationContext wac = (WebApplicationContext)servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
但通过位于 org.springframework.web.context.support
包中的WebApplicationContextUtils
工具类获取WebApplicationContext
更方便:
WebApplicationContext wac =WebApplicationContextUtils.getWebApplicationContext(servletContext);
当 ServletContext 属性列表中不存在 WebApplicationContext
时,getWebApplicationContext()
方法不会抛出异常,它简单地返回 null。如果后续代码直接访问返回的结果将引发一个 NullPointerException 异常,而 WebApplicationContextUtils 另一个 getRequiredWebApplicationContext(ServletContext sc) 方法要求 ServletContext 属性列表中一定要包含一个有效的 WebApplicationContext 对象,否则马上抛出一个 IllegalStateException 异常。我们推荐使用后者,因为它能提前发现错误的时间,强制开发者搭建好必备的基础设施。
最新文章
- zabbix监控系列(4)之zabbix报警邮件无法发送
- HTTP HSTS协议和 nginx
- GetSafeHwnd()函数解释[转]
- 从ext2文件系统上读出超级块
- HotSpot算法实现
- lnmp.org一键安装包
- Oracle AWR
- android studio 添加到项目库中的项目
- Windows中安装jdk,出现javac不是内部或外部命令 也不是可运行的程序
- Thrift总结(二)创建RPC服务
- GDAL C#版本 ";安全透明方法";问题解决方案
- SpringBootApplication注解 专题
- Hive 任务优化 tips
- OSC Source Code Innovation Salon(2018.10.20)
- 【XMPP】Smack源码之初步认识
- linux系统下top命令参数详解
- mysql升级到5.6源
- 什么是http头信息
- 自定义控件(视图)2期笔记13:View的滑动冲突之 内部拦截法
- 【docker】【mysql】docker安装mysql,阿里云docker镜像加速器,docker搜索查看远程仓库上的镜像,docker拉取镜像,查看本地所有镜像,查看容器的运行状况,查看容器的详细信息