91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring之BeanPostProcessor的示例分析

發布時間:2021-06-10 09:21:44 來源:億速云 閱讀:134 作者:小新 欄目:開發技術

小編給大家分享一下Spring之BeanPostProcessor的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、簡介

BeanPostProcessor是Spring IOC容器給我們提供的一個擴展接口。

實例化Bean做前置處理、后置處理

二、接口定義

@Component
public class BeanPost  implements BeanPostProcessor {
   /**
     * 在每個bean創建之后的初始化方法之前調用
     * @param bean 當前實例化的bean
     * @param beanName bean的名稱
     * @return 返回實例化的bean或者可以對對象進行再封裝返回
     * @throws BeansException
     */
    @Override
    public  Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("初始化前"+beanName);
        return bean;
    }
    /**
     * 在每個bean的初始化方法執行之后被調用
     * @param bean 當前實例化的bean
     * @param beanName bean的名稱
     * @return 返回實例化的bean或者可以對對象進行再封裝返回
     * @throws BeansException
     */
    @Override
    public  Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("初始化后"+beanName);
        return bean;
    }
}

運行順序

實例化bean對象->設置對象屬性->檢查Aware接口設置依賴

->BeanPostProcessor前置處理->檢查是否是initializingBean以決定是否調用afterPropertiesSet方法->檢查是否配置自定義init-method->BeanPostProcessor后置處理->注冊必要的Destruction相關回調接口->。。。->是否實現DisposableBean接口->是否配置自定義destroy方法

三、源碼

1.由AnnotationConfigApplicationContext進入

Spring之BeanPostProcessor的示例分析

2.進入構造方法的refresh方法

Spring之BeanPostProcessor的示例分析

3.進入到finishBeanFactoryInitialization方法

Spring之BeanPostProcessor的示例分析

4.進入preInstantiateSingletons方法

Spring之BeanPostProcessor的示例分析

5.執行getBean實例化方法

Spring之BeanPostProcessor的示例分析

6創建bean實例

Spring之BeanPostProcessor的示例分析

7.doCreateBean

Spring之BeanPostProcessor的示例分析

8.進入初始化接口

Spring之BeanPostProcessor的示例分析

9.可以看到執行到了BeanPostProcessor 提供的2個方法

Spring之BeanPostProcessor的示例分析

進入內部可以看到

Spring之BeanPostProcessor的示例分析

10.然后繼續往下走開始AWare流程

Spring之BeanPostProcessor的示例分析

內部:

Spring之BeanPostProcessor的示例分析

11.進入invokeAwareInterfaces(bean);方法

Spring之BeanPostProcessor的示例分析

內部:

當前bean實現了ApplicationContextAware接口

Spring之BeanPostProcessor的示例分析

12.走到Person類中的setApplicationContext方法

Spring之BeanPostProcessor的示例分析

以上是“Spring之BeanPostProcessor的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濉溪县| 广丰县| 华安县| 大方县| 绿春县| 卢氏县| 赤城县| 潮安县| 溆浦县| 平凉市| 鄂伦春自治旗| 宁远县| 林周县| 郧西县| 杂多县| 桦川县| 项城市| 广水市| 连平县| 广宁县| 黄梅县| 罗田县| 犍为县| 周口市| 漳州市| 淮北市| 游戏| 屯门区| 资阳市| 增城市| 吉林市| 阿克苏市| 麟游县| 海口市| 阜新| 中方县| 丹东市| 延川县| 五寨县| 东方市| 五河县|