我是靠谱客的博主 幸福蚂蚁,这篇文章主要介绍spring注解---BeanPostProcessor后置处理器,现在分享给大家,希望可以做个参考。

.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后置处理器内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(114)

评论列表共有 0 条评论

立即
投稿
返回
顶部