概述
.BeanPostProcessor :bean的后置处理器。
postProcessBeforeInitialization:bean实例被创建之后,初始化方法执行之前被执行
postProcessAfterInitialization:初始化方法执行之后被执行
参数:Object bean:当前实例化的bean
String beanName:当前实例化的bean在IOC容器中的id
注意:返回值不能为null,一般返回给的参数实例。
PS:初始化方法------》就是指,之前可以通过xml文件的init-method属性,@Bean注解的initMethod参数,InitializingBean接口,js250中的@PostConstruct,等方法给实例添加初始化方法。这些初始化方法,会在实例被创建,赋值完成之后被调用。而BeanPostProcessor的postProcessBeforeInitialization()方法则会在他们之间被调用。 也就是实例化完成,属性赋值完成===》postProcessBeforeInitialization()======》初始化方法======》postProcessAfterInitialization
public interface BeanPostProcessor {
Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;
Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;
}
实例:继承BeanPostProcessor 接口,使用@Bean注解注册bean。
public class MyBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("Before "+beanName);
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("After "+beanName);
return bean;
}
}
@Configuration
public class ConfigTest1 {
@Bean
public MyBeanPostProcessor myBeanPostProcessor() {
return new MyBeanPostProcessor();
}
}
效果:
Dog make .... Dog了类实例化
Before dog 后置处理器在初始化方法执行前被调用
Dog init .... 执行初始化方法
After dog 后置处理器在初始化方法执行后被调用
最后
以上就是幸福蚂蚁为你收集整理的spring注解---BeanPostProcessor后置处理器的全部内容,希望文章能够帮你解决spring注解---BeanPostProcessor后置处理器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复