如果自定义实现了BeanFactoryPostProcessor接口,那么想让spring识别到的话,有两种方式:
1 定义在spring的配置文件中,让spring自动识别
2 调用具体的addBeanFactoryPostProcessor方法
方法1 的代码实现
定义实现BeanFactoryPostProcessor接口 的类 MyBeanFactoryPostProcessor,代码如下:
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 {@Overridepublic 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() 添加自定义类。代码如下: