zoukankan      html  css  js  c++  java
  • Bean后置处理器 BeanPostProcessor

    1.BeanPostProcessor接口的作用

    Bean后置处理器允许在调用初始化方法前后对Bean进行额外的处理,Bean后置处理器对IOC容器的所有bean实例逐一处理,而非单一实例。

    我们可以定义一个或多个BeanPostProcessor接口实现类,然后注册到Spring IOC容器中。

    2.BeanPostProcess接口的api

    public interface BeanPostProcessor {
    
        /**
         * Apply this BeanPostProcessor to the given new bean instance <i>before</i> any bean
         * initialization callbacks (like InitializingBean's {@code afterPropertiesSet}
         * or a custom init-method). The bean will already be populated with property values.
         */
    //实例化、依赖注入完毕,在调用显示的初始化之前完成一些定制的初始化任务
    @Nullable default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } /** * Apply this BeanPostProcessor to the given new bean instance <i>after</i> any bean * initialization callbacks (like InitializingBean's {@code afterPropertiesSet} * or a custom init-method). The bean will already be populated with property values. */ //实例化、依赖注入、初始化完毕后执行
    @Nullable
    default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } }

     postProcessorBeforeIntialization方法是在bean实例化,依赖注入之后,但是在自定义初始化-之前调用

       自定义初始化有三种情况----

          ------ 配置文件bean标签添加init-method属性指定初始化方法

          ------@PostConstruct注解指定初始化方法

          -------实现IntializingBean接口的afterPropertiesSet方法

    postProcessorAfterInitialization方法实在bean实例化,依赖注入之后,也在自定义初始化方法之后调用

  • 相关阅读:
    CDOJ 1059 秋实大哥与小朋友 STL(set)+离散化+BIT区间更新单点查询
    hdu 1754 线段树 水题 单点更新 区间查询
    ZOJ 2301 离散化
    hdu 1166 线段树 区间求和 +单点更新 CD模板
    UVA 12299 线段树 ( 单点跟新 , 区间查询)
    TTTTTTTTTTTTT LA 2191 树状数组 稍修改
    TTTTTTTTTTT LA 4329 BIT模版
    POJ 1912 凸包
    对django模型中的objects的理解
    巨蟒python全栈开发django4:url反向解析图解&&模板渲染2
  • 原文地址:https://www.cnblogs.com/whx7762/p/7850519.html
Copyright © 2011-2022 走看看