美文网首页
InitialingBean, BeanPostProcesso

InitialingBean, BeanPostProcesso

作者: 猴猴猪027 | 来源:发表于2017-09-20 16:51 被阅读0次

    InitialingBean, BeanPostProcessor, BeanFactoryPostProcessor用法上的区别。

    InitialingBean

    接口实现类需要实现afterPropertiesSet方法,就像方法名,在对象的属性值都设好之后才会调用。

    void afterPropertiesSet() throws Exception;
    

    BeanPostProcessor

    如果配置了BeanPostProcessor,所有的bean初始化前后都会调用before方法和after方法。

    Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;
    Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;
    

    方法的入参是bean和bean的名字,因此可以使用这个方法修改bean的属性值等等。

    BeanFactoryPostProcessor

    实现改接口的类需要同时实现一下方法。

    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
    

    方法回调时间是所有的bean定义都被解析,但是还没有一个bean被实例化,可以看到入参是beanFactory,因此可以对bean定义进行修改。也可以看出来该方法的回调时间是在BeanPostProcessor方法之前的。

    相关文章

      网友评论

          本文标题:InitialingBean, BeanPostProcesso

          本文链接:https://www.haomeiwen.com/subject/lmmosxtx.html