获取Spring的ApplicationContext的几种方式
Application Context定义
简单来说就是Spring中的高级容器,可以获取容器中的各种bean组件,注册监听事件,加载资源文件等功能。
具体定义可以参考官网:https://spring.io/understanding/application-context
Understanding Application Context
The ApplicationContext
is the central interface within a Spring application for providing configuration information to the application. It is read-only at run time, but can be reloaded if necessary and supported by the application. A number of classes implement the ApplicationContext
interface, allowing for a variety of configuration options and types of applications.
The ApplicationContext
provides:
- Bean factory methods for accessing application components.
- The ability to load file resources in a generic fashion.
- The ability to publish events to registered listeners.
- The ability to resolve messages to support internationalization.
- Inheritance from a parent context.
Application Context获取的几种方式
1、直接注入
@Resource
private ApplicationContext ctx;
2、实现ApplicationContextAware接口(推荐)
WebApplicationObjectSupport extends ApplicationObjectSupport implements ServletContextAware
从上面的继承关系看,获取Application Context还可以继承WebApplicationObjectSupport 、ApplicationObjectSupport,继承加强耦合性不推荐。
3、WebApplicationContextUtils工具类
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
4、从当前线程绑定获取(Spring boot不支持)
ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
- Flash/Flex学习笔记(34):AS3中的自定义事件
- 字符串处理总结(旧)
- 计算某年某月的某一天是星期几的算法
- Flash/Flex学习笔记(33):如何用As3协同Flash CS IDE控制MovieClip实例
- live writer的折腾
- 用C语言写的万年历---亲手写的。好累哦
- Flash/Flex学习笔记(32):播放音乐并同步显示lyc歌词(适用于Silverlight)
- Flash/Flex学习笔记(31):对象拖拽与投掷
- 如何评价张小龙在2016微信公开课的演讲
- VS2010如何做WAP开发
- (原创)详解KMP算法
- Flash/Flex学习笔记(30):不用startDrag和stopDrag的对象拖动
- JS代码和网页的混用
- Flash/Flex学习笔记(29):MovieClip帧/时间轴的控制
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- pytest封神之路第四步 内置和自定义marker
- (译)SDL编程入门(3)事件驱动编程
- 一个简单的Angular search UI实现
- (译)SDL编程入门(2)在屏幕上显示图像
- 【Vue进阶】手把手教你在 Vue 中使用 JSX
- (译)SDL编程入门(1)Hello SDL
- Django使用Channels实现websocket
- (译)SDL编程入门(6)扩展库SDL_image
- 牛客网剑指offer-2
- 牛客网剑指offer-1
- (译)SDL编程入门(5)Surface 优化和软拉伸
- (译)SDL编程入门(4)按键操作
- webpack实战——生产环境配置【中】
- MongoDB权威指南学习笔记(1)--基础知识与对文档的增删改查
- 利用 Shell 脚本实现邮件监控 Linux 系统的内存