如果自定义实现了BeanFactoryPostProcessor接口,那么想让spring识别到的话,有两种方式:
1 定义在spring的配置文件中,让spring自动识别
2 调用具体的addBeanFactoryPostProcessor方法
方法1 的代码实现
定义实现BeanFactoryPostProcessor接口 的类 MyBeanFactoryPostProcessor,代码如下:
java
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
/**
* @author Administrator
* @title: MyBeanFactoryPostProcessor
* @projectName spring
* @description: TODO
* @date 2022/3/1121:22
*/
public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
//BeanDefinition a = beanFactory.getBeanDefinition("a");
System.out.println("设置 BeanDefinition ----------- ");
}
}
在spring-context.xml 文件中定义bean,类为 MyBeanFactoryPostProcessor。
方法2:
首先定义实现BeanFactoryPostProcessor接口 的类 MyBeanFactoryPostProcessor,代码法1所示。
其次是在启动类中重写 customizeBeanFactory()方法,调 用 super.addBeanFactoryPostProcessor() 添加自定义类。代码如下: