当 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 异常。我们推荐使用后者,因为它能提前发现错误的时间,强制开发者搭建好必备的基础设施。

 

最新文章

  1. zabbix监控系列(4)之zabbix报警邮件无法发送
  2. HTTP HSTS协议和 nginx
  3. GetSafeHwnd()函数解释[转]
  4. 从ext2文件系统上读出超级块
  5. HotSpot算法实现
  6. lnmp.org一键安装包
  7. Oracle AWR
  8. android studio 添加到项目库中的项目
  9. Windows中安装jdk,出现javac不是内部或外部命令 也不是可运行的程序
  10. Thrift总结(二)创建RPC服务
  11. GDAL C#版本 "安全透明方法"问题解决方案
  12. SpringBootApplication注解 专题
  13. Hive 任务优化 tips
  14. OSC Source Code Innovation Salon(2018.10.20)
  15. 【XMPP】Smack源码之初步认识
  16. linux系统下top命令参数详解
  17. mysql升级到5.6源
  18. 什么是http头信息
  19. 自定义控件(视图)2期笔记13:View的滑动冲突之 内部拦截法
  20. 【docker】【mysql】docker安装mysql,阿里云docker镜像加速器,docker搜索查看远程仓库上的镜像,docker拉取镜像,查看本地所有镜像,查看容器的运行状况,查看容器的详细信息

热门文章

  1. 持久层框架---jdbc
  2. Java-IO读写文件简单操作2
  3. IIS 配置asp.net 环境
  4. Head First 设计模式笔记(模版方法模式)
  5. DEDE文章列表加上序号效果
  6. vue学习笔记 vue
  7. CentOS7安装Nginx实现API网关
  8. c#-day02学习笔记
  9. 初次搭建spring boot 项目(实验楼-学习笔记)
  10. Linux如何上查看和退出tomcat实时日志