获取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();
近期热文推荐:
1.Java 15 正式发布, 14 个新特性,刷新你的认知!!
2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!
3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。
觉得不错,别忘了随手点赞+转发哦!
相关文章
- Spring Boot 的 HTTP 客户端框架
- Spring: 获取Bean & Bean初始化
- Spring Boot——Thymeleaf
- Spring Cloud Alibaba,Apache Dubbo 的基本应用
- 使用Ocelot、IdentityServer4、Spring Cloud Eureka搭建微服务网关:Step by Step(一)
- Spring获取springmvc的controller bean
- SpringMVC4 + Spring + MyBatis3 基于注解的最简配置
- 【Spring源码】Spring事务原理
- 江帅帅:Spring Boot 底层级探索系列 01- 搭建项目
- 从Spring 应用上下文获取 Bean 的常用姿势
- spring cloud 2020.0.1踩坑记录-bootstrap不生效等
- Spring Cloud (boot) 集成Sentinel
- spring 配置文件 获取变量(PropertyPlaceholderConfigurer)
- Spring_手动获取Bean
- Spring Cloud GateWay路由信息的获取
- spring remoting源码分析--Hessian分析
- Spring MVC handler interceptors example--转载
- spring 通过编程来获取属性文件
- spring mvc DispatcherServlet详解之一--request通过HandlerMaping获取控制器Controller过程
- 曹工说Spring Boot源码(23)-- ASM又立功了,Spring原来是这么递归获取注解的元注解的