7 spring 识别自定义实现BeanFactoryPostProcessor 的接口
如果自定义实现了BeanFactoryPostProcessor接口,那么想让spring识别到的话,有两种方式:
1 定义在spring的配置文件中,让spring自动识别
代码实现如下:
定义实现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 { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { //BeanDefinition a = beanFactory.getBeanDefinition("a"); System.out.println("设置 BeanDefinition ----------- "); } }
在spring-context.xml 文件中定义bean,类为 MyBeanFactoryPostProcessor。
2 调用具体的addBeanFactoryPostProcessor方法
首先定义实现BeanFactoryPostProcessor接口 的类 MyBeanFactoryPostProcessor,代码如法1所示。
其次是在启动类中重写 customizeBeanFactory()方法,调 用 super.addBeanFactoryPostProcessor() 添加自定义类。代码如下: