美文网首页
spring的BeanPostProcessor和BeanFac

spring的BeanPostProcessor和BeanFac

作者: 晨曦_lcq | 来源:发表于2020-07-26 21:52 被阅读0次

    spring提供了两种后置处理bean的扩展接口,分别为BeanPostProcessor和BeanFactoryPostProcessor。

    BeanPostProcessor bean级别的处理,针对某个具体的bean进行处理,提供初始化前和初始化后两个方法。

    public interface BeanPostProcessor {
        default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
            return bean;
        }
        default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
            return bean;
        }
    }
    

    实现了这个接口,所有bean实例化的时候都会执行初始化前和初始化后这两个方法。

    BeanFactoryPostProcessor 针对beanFactory进行处理。

    @FunctionalInterface
    public interface BeanFactoryPostProcessor {
        void postProcessBeanFactory(ConfigurableListableBeanFactory var1) throws BeansException;
    }
    

    bean的创建流程为:定义bean标签 -> 将bean解析成BeanDefinition -> 调用构造方法实例化 -> 属性依赖注入
    BeanFactoryPostProcess发生在第二步后第三步之前。

    区别

    BeanPostProcessor发生在实例化之后,初始化之前和初始化之后。BeanFactoryPostProcessor发生在实例化之前。

    相关文章

      网友评论

          本文标题:spring的BeanPostProcessor和BeanFac

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