ApplicatonContext注册BeanFactoryPostProcessor处理器
来源:互联网 发布:胜通软件多少钱 编辑:程序博客网 时间:2024/06/06 19:06
1、pojo
package com.wenpu.bean;
public class Car {
public Car(){
System.out.println("invoke default constructor");
}
private String brandName;
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
System.out.println("invoke setter method");
}
}
2、实现BeanFactoryPostProcessor处理器
package com.wenpu.processor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor{
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory bf)
throws BeansException {
BeanDefinition bd=(BeanDefinition)bf.getBeanDefinition("car");
bd.getPropertyValues().add("brandName", "奥迪");
System.out.println("invoke BeanFactoryPostProcessor.postProcessBeanFactory");
}
}
3、bean配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- pojo定义 -->
<bean id="car" class="com.wenpu.bean.Car" p:brandName="红旗"/>
<!-- BeanFactoryPostProcessor处理器,ApplicationContext会自动注册该处理器 -->
<bean id="myBeanFactoryPostProcessor" class="com.wenpu.processor.MyBeanFactoryPostProcessor"/>
</beans>
4、测试类
package com.wenpu.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.wenpu.bean.Car;
public class BeanCycleTest {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("BeanCycleInBeanFactory-context.xml");
Car car=(Car)context.getBean("car");
System.out.println(car.getBrandName());
}
}
5、输出结果:
invoke BeanFactoryPostProcessor.postProcessBeanFactory
invoke default constructor
invoke setter method
奥迪
6、总结:从结果看brandName由"红旗"变为了"奥迪".
- ApplicatonContext注册BeanFactoryPostProcessor处理器
- Spring的后置处理器BeanFactoryPostProcessor
- Spring BeanFactoryPostProcessor Bean后处理器 执行时机
- Spring BeanFactoryPostProcessor容器后处理器执行时机
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- Spring的后置处理器(BeanFactoryPostProcessor和BeanPostProcessor)
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- 【Spring学习24】容器扩展点:后置处理器BeanFactoryPostProcessor
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- 注册BeanFactoryPostProcessor Bean的Configuration下的Environment为null
- 关于Spring的Aware接口和后置处理器接口(BeanPostProcessor和BeanFactoryPostProcessor)的一些想法
- spring 容器后处理器 BeanFactoryPostProcessor 使用需要注意的一个问题
- BeanFactoryPostProcessor 用法
- BeanFactoryPostProcessor接口
- AC自动机算法详解
- 解决:/home/catia/android-sdks/platform-tools/aapt: error while loading shared libraries: libz.so.1: c
- repo
- Android程序界面主题切换
- 学习计划
- ApplicatonContext注册BeanFactoryPostProcessor处理器
- 数据仓库设计基础--关系模型和多维模型
- word转pdf的最佳实现方案
- JSPServlet编码问题总结
- spring mvc注解
- hdu 3724Encoded Barcodes
- 理解数据结构
- java提供的把中文转化为ascII码(*.properties 文件配置使用)的方法
- 如果不坚持,到哪里都是放弃