免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Springbean對象實例化的案例分析-創新互聯

創新互聯www.cdcxhl.cn八線動態BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

成都創新互聯是一家集網站建設,阿魯科爾沁企業網站建設,阿魯科爾沁品牌網站建設,網站定制,阿魯科爾沁網站建設報價,網絡營銷,網絡優化,阿魯科爾沁網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。

這篇文章主要介紹Spring bean對象實例化的案例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

好了 我們聊聊 Bean 的實例化過程的幾個重要角色

BeanDefinitionRegistryPostProcessor 接口

Refresh().invokeBeanFactoryPostProcessors 這個方法里面。

BeanDefinitionRegistryPostProcessor 這個接口的調用分為三部:

1、調用實現了 PriorityOrdered 排序接口

2、調用實現了 Ordered 排序接口

3、沒有實現接口的調用

這個接口我的理解:獲取 BeanDefinitionRegistry 對象,獲取到這個對象就可以獲取這個對象中注冊的所有 BeanDefinition 對象,所以我們知道了,我們擁有這個對象就可以完成里面所有 BeanDefinition 對象的修改新增操作

Spring bean對象實例化的案例分析

BeanPostProcessor 的注冊

Refresh().registerBeanPostProcessors 這個方法里面。

Spring bean對象實例化的案例分析

拿到 BeanFactory 中所有注冊的 BeanDefinition 對象的名稱 beanName。

Spring bean對象實例化的案例分析

然后判斷是否實現了 PriorityOrdered 排序接口,Ordered 排序接口,getBean 是將該 ppName 對應的 BeanDefinition 對象實例化。

Spring bean對象實例化的案例分析

把對應的 BeanPostProcessor 對象注冊到 BeanFactory 中,BeanFactory 中有一個list 容器接收。getSingleton 方法代碼位置:AbstractBeanFactory.doGetBean 方法中

Spring bean對象實例化的案例分析

方法里面核心要點:

Spring bean對象實例化的案例分析

Spring bean對象實例化的案例分析

把 beanName 添加到 singletonsCurrentlyInCreation Set 容器中,在這個集合里面的 bean 都是正在實例化的 bean,就是實例化還沒做完的 BeanName

Spring bean對象實例化的案例分析

調到 getObject 方法,完成 bean 的實例化。接下來

Spring bean對象實例化的案例分析

getObject 調用完后,就代表著 Bean 實例化已經完成了,這時候就需要

1、singletonsCurrentlyInCreation 把 beanName 從這個集合中刪除

2、addSingleton,把 bean 緩存到一級緩存中

Spring bean對象實例化的案例分析createBean

方法代碼位置:AbstractBeanFactory.doGetBean 方法中

Spring bean對象實例化的案例分析

這個方法是 bean 實例化核心方法

Spring bean對象實例化的案例分析

實例化方法,把 bean 實例化,并且包裝成 BeanWrapper點進這個方法里面。

Spring bean對象實例化的案例分析

這個方法是反射調用類中的 factoryMethod 方法。這要知道@Bean 方法的原理,實際上spring 會掃描有@bean 注解的方法,然后把方法名稱設置到 BeanDefinition 的 factoryMethod屬性中,接下來就會調到上面截圖中的方法實現@Bean 方法的調用。該方法里面的參數解析過程不需要了解。

Spring bean對象實例化的案例分析

determineConstructorsFromBeanPostProcessors

這個方法是 BeanPostProcessor 接口類的首次應用,最終會掉到AutowiredAnnotationBeanPostProcessor 類的方法,在方法中會掃描有注解的構造函數然后完成裝配過程。

以上是Spring bean對象實例化的案例分析的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯-成都網站建設公司行業資訊頻道!

網站欄目:Springbean對象實例化的案例分析-創新互聯
鏈接URL:http://m.newbst.com/article8/cepiop.html

成都網站建設公司_創新互聯,為您提供網頁設計公司網站維護面包屑導航外貿建站虛擬主機企業網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司