博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-BeanFactoryPostProcessor
阅读量:4304 次
发布时间:2019-05-27

本文共 1068 字,大约阅读时间需要 3 分钟。

作用:在Spring创建完BeanFactory之后,会调用所有实现了BeanFactoryPostProcessor接口的实例的postProcessBeanFactory方法,目前的最大使用场景就是在注册BeanDefinition之前,修改BeanDefinition

注册BeanDefinition请参考我的另一片文章BeanDefinitionRegistry

Spring.xml

实现类

public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor{		@Override	public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {		BeanDefinition bdf=beanFactory.getBeanDefinition("student");		MutablePropertyValues mpv=bdf.getPropertyValues();		TypedStringValue source=(TypedStringValue)mpv.get("name");		System.out.println("原来的name值是:"+source.getValue());		source.setValue("MASALAKA");		System.out.println("现在的name值是:"+source.getValue());	}}

测试类

public static void main(String[] args) throws Exception {		ApplicationContext ac=new ClassPathXmlApplicationContext("spring-application.xml");		Student s=(Student)ac.getBean("student");		System.out.println("get bean"+s.getName());	}

当然,这个例子中,用BeanPostProcessor也可以做到的,因为此例子中是对Bean的值修改,而实际BeanFactoryPostProcessor接口目的是对BeanDefinition进行修改

转载地址:http://sthws.baihongyu.com/

你可能感兴趣的文章
kafka的javaapi生产者生产消息,消费者获取不到
查看>>
一个脚本去调用另一个脚本里的东西
查看>>
判断物体是否在视角内(根据摄像机判断)
查看>>
传智播客资料
查看>>
Ubuntu 14.04 配置VNC服务 配置Xfce4桌面
查看>>
Mysql学习(一)
查看>>
n皇后2种解题思路与代码-Java与C++实现
查看>>
python 基础之简单购物车小程序实现
查看>>
超声波
查看>>
C++的四种cast
查看>>
GStreamer pipeline的basetime是如何计算出来的?
查看>>
用gdb如何查看指定地址的内存内容?
查看>>
java实现多线程断点续传,上传下载
查看>>
CSS实现垂直居中
查看>>
freeMarker
查看>>
将老集合中重复的元素删除并添加到新集合中
查看>>
how to install dynalite on centos7?
查看>>
HDU2196(SummerTrainingDay13-D tree dp)
查看>>
C++类的构造函数
查看>>
JavaScript基础——理解变量作用域
查看>>