ApplicationContextAware如何装配applicationcontext
首先看通过实现ApplicationContextAware接口获得applicationcontext的方法:
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext; // Spring应用上下文环境
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
要知道ApplicationContextAware首先要了解ApplicationContextAwareProcessor
ApplicationContextAwareProcessor继承了BeanPostProcessor,即在bean实例化的时候会调用postProcessBeforeInitialization
//bean实例化后的回调
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException {
// TODO Auto-generated method stub
return null;
}
而ApplicationContextAwareProcessor的postProcessBeforeInitialization方法中
if (System.getSecurityManager() != null &&
(bean instanceof EnvironmentAware || bean instanceof EmbeddedValueResolverAware ||
bean instanceof ResourceLoaderAware || bean instanceof ApplicationEventPublisherAware ||
bean instanceof MessageSourceAware || bean instanceof ApplicationContextAware)) {
acc = this.applicationContext.getBeanFactory().getAccessControlContext();
}
if (bean instanceof ApplicationContextAware) {
((ApplicationContextAware) bean).setApplicationContext(this.applicationContext);
}
如果bean是ApplicationContextAware子类就会把当前spring的上下文设置给bean,所以bean继承ApplicationContextAware就能通过setApplicationContext得到当前Spring上下文
类似的处理:

智能推荐
spring-ApplicationContextAware的使用
出现如下场景: web工程中,通过ContextLoderListener加载并启动了spring容器; java工程中,通过ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");方式启动了spring容器。 但在其他类(bean)的普通方法中,还需要拿到spr...
如何安装配置yaf
yaf有什么优势 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用率, 降低内存占用率. 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享. 高性能的视图引擎. 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等. 内建多种路由...
VUE给动态生成的el-checkbox添加v-model
需求描述:根据返回的数据,页面动态for循环添加el-checkbox,动态绑定v-model; html代码: tabList数据格式: 之前的错误做法: 开始以为这样就可以了,毕竟在el-checkbox上用item.status绑定v-model,后面发现checkbox点击的时候并没有更新; 解决方案: 官方文档...
[UE4]蓝图和C++调用自定义函数
1、C++自定义方法,蓝图调用 UFUNCTION宏是处理将C++函数暴露给反射系统的一些事情,参数BlueprintCallable意味着这个函数可以在蓝图中调用,而后面的目录是必须有的,这样在蓝图中右键点击的时候,我们就可以根据这个目录找到我们需要的函数。 2、蓝图定义方法,C++调用 当我们在蓝图中定义了一系列操作后,我们也想用C++调用,我们利用BlueprintImplementable...
Redis--2.Jedis的介绍和使用
一.概念 Jedis是Redis官方推荐使用的的一个Java连接开发的工具(中间件)。 Jedis主要是集成了redis的一些命令操作,封装了redis的java客户端。 使用Jedis操作Redis数据库,就相当于使用JDBC操作sql_server、Mysql数据库。 二.两种连接方式 1.Jedis对象直连Redis Jedis对象直连方式可以分为五个步骤: 1、导入Jedis的jar包 2...
猜你喜欢
选择图片上传之后,图片旋转问题解决方案(前端)
图片上传之后,显示为什么会是旋转的呢? 这就要说到图片的 exif 简单来说,Exif 信息就是由数码相机在拍摄过程中采集一系列的信息,然后把信息放置在我们熟知的 JPEG/TIFF 文件的头部,也就是说 Exif信息是镶嵌在 JPEG/TIFF 图像文件格式内的一组拍摄参数,它就好像是相机的日期打印功能一样,只不过 Exif信息所记录的资讯更为详尽和完备。Exif 所记录的元数据信息非常丰富,主...
ApplicationContextAware如何装配applicationcontext
首先看通过实现ApplicationContextAware接口获得applicationcontext的方法: 要知道ApplicationContextAware首先要了解ApplicationContextAwareProcessor ApplicationContextAwareProcessor继承了BeanPostProcessor,即在bean实例化的时候会调用postProcess...
[BZOJ1013][JSOI2008]球形空间产生器sphere(高斯消元)
题目: 我是超链接 题解: 根据题目给出的信息,我们列柿子 (a1−x)2+(b1−y)2=r2(a1−x)2+(b1−y)2=r2 (a2−x)2+(b2−y)2=r2(a2−x)2+(b2−y)2=r2 (a3−x)2+(b3−y)2=r2(a3−x)2+(b3&...
【opencv学习之三十六】轮廓特征应用:计算点与轮廓距离
opencv实现了Contours与point的距离关系的计算使用起来很方便,不用自己再进行坐标转换计算了;示例代码如下: 效果如下:...
实验六:MPG音频编码
一、实验原理 音频压缩编码的本质是感知编码,利用感知模型去除不敏感的声音数据,同时保证声音质量不会有明显下降。它采用子带编码技术,根据心理声学模型获得不同子带的听觉掩蔽阈值,并对每个子带的取样值进行动态量化。 1、音频压缩的可能性 (1)声音信号中的“冗余”信息: 频域:非均匀功率密度谱, 低频能量高,高频能量低。 时域:信息冗余度主要表现在幅度非均匀分布,即不同幅度的样值...
