BeanFactoryPostProcessor的详解与使用
BeanFactory的功能
- beanFactoryPostProcessor接口可以在bean
未被实例化之前
获取bean的定义即配置元数据,然后根据需要进行更改。 - beanFactoryPostProcessor里有方法 void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException; 此方法可以通过beanFactory可以获取bean的定义信息,并可以修改bean的定义信息。
- 可以在spring配置文件中定义多个beanFactoryPostProcessor,执行顺序按照定义顺序执行,也可以根据order属性自己定义执行顺序。
代码演示
代码结构图
1. 实例对象Bean User
@Component
public class User {
private String userName = "张三";
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
2. 自定义BeanFactoryPostProcessor
MyBeanFactoryPostProcessor01, MyBeanFactoryPostProcessor02, MyBeanFactoryPostProcessor03
@Component
public class MyBeanFactoryPostProcessor01 implements BeanFactoryPostProcessor, Ordered {
@Override
public void