欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring源碼解析之BeanPostProcessor知識總結

 更新時間:2021年06月09日 16:27:30   作者:隨波逐流baby  
今天給大家?guī)淼奈恼率荢pring的相關知識,文章圍繞著BeanPostProcessor的使用展開,文中有非常詳細的介紹,需要的朋友可以參考下

一、簡介

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

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

二、接口定義

@Component
public class BeanPost  implements BeanPostProcessor {
   /**
     * 在每個bean創(chuàng)建之后的初始化方法之前調用
     * @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的初始化方法執(zhí)行之后被調用
     * @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相關回調接口->。。。->是否實現(xiàn)DisposableBean接口->是否配置自定義destroy方法

三、源碼

1.由AnnotationConfigApplicationContext進入

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

3.進入到finishBeanFactoryInitialization方法

4.進入preInstantiateSingletons方法

5.執(zhí)行getBean實例化方法

6創(chuàng)建bean實例

7.doCreateBean

8.進入初始化接口

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

進入內部可以看到

10.然后繼續(xù)往下走開始AWare流程

內部:

11.進入invokeAwareInterfaces(bean);方法

內部:

當前bean實現(xiàn)了ApplicationContextAware接口

12.走到Person類中的setApplicationContext方法

一入源碼深似海,苦海無邊,回頭是岸

到此這篇關于Spring源碼解析之BeanPostProcessor知識總結的文章就介紹到這了,更多相關BeanPostProcessor的使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java使用RedisTemplate如何根據(jù)前綴獲取key列表

    Java使用RedisTemplate如何根據(jù)前綴獲取key列表

    這篇文章主要介紹了Java使用RedisTemplate如何根據(jù)前綴獲取key列表,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法

    Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法

    這篇文章主要介紹了Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法,涉及java針對圖片的合成操作技巧,類似水印功能,需要的朋友可以參考下
    2015-07-07
  • SpringBoot如何使用內嵌Tomcat問題

    SpringBoot如何使用內嵌Tomcat問題

    這篇文章主要介紹了SpringBoot如何使用內嵌Tomcat問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java在pdf中生成表格的方法

    java在pdf中生成表格的方法

    這篇文章主要介紹了java在pdf中生成表格的方法,需要的朋友可以參考下
    2015-11-11
  • java常用Lambda表達式使用場景源碼示例

    java常用Lambda表達式使用場景源碼示例

    這篇文章主要為大家介紹了java常用Lambda表達式使用場景源碼示例及應用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • Java異常分類以及幾種處理機制分析講解

    Java異常分類以及幾種處理機制分析講解

    在Java的廣闊宇宙中,有一群特殊的“超級英雄”,它們在代碼世界中穿梭,守護著程序的正常運行——它們就是“異?!?這些英雄們,各司其職,保護著程序免受錯誤的侵擾,今天,我們將深入這個神秘的世界,全面解析異常的分類,掌握異常的處理機制
    2024-07-07
  • java實現(xiàn)面板之間切換功能

    java實現(xiàn)面板之間切換功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)面板之間切換功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • SpringBoot實現(xiàn)統(tǒng)一功能處理的教程詳解

    SpringBoot實現(xiàn)統(tǒng)一功能處理的教程詳解

    這篇文章主要為大家詳細介紹了SpringBoot如何實現(xiàn)統(tǒng)一功能處理,文中的示例代碼講解詳細,對大家學習或工作有一定借鑒價值,感興趣的同學可以參考閱讀下
    2023-05-05
  • Jenkins的安裝配置詳解

    Jenkins的安裝配置詳解

    這篇文章主要介紹了Jenkins的安裝配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 如何解決Project SDK is not defined問題

    如何解決Project SDK is not defined問題

    這篇文章主要介紹了如何解決Project SDK is not defined問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論