1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        spring-boot源碼分析之beanFactory · 拾

        共 1929字,需瀏覽 4分鐘

         ·

        2021-09-17 16:34

        前言

        今天分享的refresh是的最后三個方法:

        • destroyBeans
        • cancelRefresh
        • resetCommonCaches

        這三個方法中,有兩個位于catch語句塊,主要是用于refresh方法運行異常時,清除已經(jīng)構建的bean和依賴的,另一個方法位于finally語句塊中,主要用于啟動成功或失敗后重置各類緩存。

        refresh最后的晚餐

        finishRefresh補充

        在開始今天的內容之前,我們先對finishRefresh做一個簡單的補充。

        finishRefresh方法內部共調用了5個方法,第一個方法就是情況Resource的緩存,其內部就是將DefaultResourceLoaderresourceCaches屬性置空,這個屬性是class和資源的map集合。

        第二個方法是初始化生命周期處理器,其內部就是往beanFactory中注冊一個名字為lifecycleProcessor的單例bean。并將這個bean賦值給當前容器的lifecycleProcessor

        第三個方法就是獲取到第二個方法賦值的lifecycleProcessor,并執(zhí)行它的onRefresh方法。

        從第二個方法那里可以看出來,生命周期處理器的類型為DefaultLifecycleProcessor,所以這里的的onRefresh方法內部實現(xiàn)如下:

        onRefresh方法內部調用了 startBean方法,它的內部實現(xiàn)如下:

        根據(jù)bebug結果,最終還是會進入forEachif條件中,雖然autoStartOnlytrue,但后面的條件是成立的,因此下面的for循環(huán)也會被執(zhí)行,最終會 LifecycleGroupstart方法:

        LifecycleGroup最終會調用bean的生命周期的start(就是我們昨天分析的createWebServer方法那里注冊的兩個生命周期bean

        后面兩個方法都很簡單,一個是推送事件,這里推送的是ContextRefreshedEvent事件;另一個方法是將當前容器添加到LiveBeansViewapplicationContexts容器中,也就不展開說明了。

        剩余方法

        今天要分析的是剩余的三個方法,這三個方法有兩個在catch中,也就是用了處理異常信息的,另一個個在finally中,也就是無論如何都會被執(zhí)行的,下面我們就詳細展開看一下。

        destroyBeans

        這個從名字就可以看出它的作用了,是的,就是銷毀已經(jīng)實例化完成的bean,也就是說如果refresh方法發(fā)生異常,會先銷毀所有的bean

        destroySingletons方法內部,它首先調用了父類的destroySingletons方法,最終在父類的方法內部調用destroySingletons以遞歸的方式銷毀beanbean的依賴,具體流程如下:

        cancelRefresh

        發(fā)生異常后取消容器刷新操作,這里只是將容器的激活狀態(tài)改為false

        resetCommonCaches

        這個方法始終會被執(zhí)行,它的作用就是清理各種緩存以及classLoader,其中ReflectionUtils清理的是和反射相關的緩存,AnnotationUtils清理的是和注解相關的緩存,ResolvableType清理的是和解析類型相關的緩存,CachedIntrospectionResults.clearClassLoader清理的是類加載器的相關緩存。

        至此,refresh方法算是徹底分享完了,run方法中剩余的方法,由于之前已經(jīng)分析過了,所以這里就不過多贅述了,后面就該花時間把最近一段時間的內容好好梳理下,然后該補充的再補充下(比如上周五的內容)。

        總結

        說實話我是沒想到剩余的三個方法這么簡單,總體內容都沒有昨天finishRefresh的補充內容多,不過也能想明白,畢竟今天內容就是catchfinally語句塊的方法,也不會有太核心的內容。

        今天分享完畢后,剩余的工作就是查漏補缺和知識點梳理了,原本想著經(jīng)過梳理run方法會發(fā)現(xiàn)有集中初始化的代碼,但是截止到現(xiàn)在都沒找到,至少不像我之前手寫的web服務器那種,不過現(xiàn)在感覺似乎已經(jīng)對spring bootbean的完整初始化過程有了一點點懵懂的認知,我想等我梳理完最近分析的代碼,這一團迷霧一定會被揭開……

        好了,今天就先到這里吧,各位小伙伴,晚安喲!

        - END -


        瀏覽 29
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            A片视频免费观看| 国产免费AV在线观看| 69人妻人人澡人人爽久久| 人妻av中文字幕| 91嫩草久久久天美传媒| 亚洲男人综合| 九九惹伊人| 国产91无码| 91精品久久久久久久久| 国产成人精品免费视频| 日韩AV三级片| 人妻熟女在线视频| 五月天久久久久| 亚洲成人综合在线| 97中文字幕| 精品交换一区二区三区无码| 日韩在线三级片| 精品探花| 亚洲中文在线视频| 国产寡妇亲子伦一区二区三区四区| 激情综合在线| 高清AV在线| 亚洲高清在线视频| 久久综合站| 中文字幕内射| av超碰| 青草影视久久| 国产操逼无码| 亚洲AV偷拍| 欧美性爱一区二区| 宅男看片| 久久久久99精品成人片三人毛片| 亚洲视频欧美视频| 婷婷五月一区| 大香蕉毛片| 亚洲日韩一区二区三区| 色老板网址| 成人无码一区二区三区| 伊人中文字幕| 2019中文字幕mv第三季歌词| 大香蕉黄色片| 国产黄色三级| 色婷婷艹| 日韩欧美人妻无码精品| 亚洲高清无码在线免费观看| 五月天成人社区| 大香蕉在线视频75| 日韩一区不卡| 色婷婷AV国产精品| 青青草免费在线视| 广州媚黑妇系列视频在线| 欧美XXX黑人XYX性爽| 国产又大又粗又黄| 波多野结衣一级婬片A片免费下载| 欧美成视频| 99久久婷婷国产综合精品青牛牛 | 国产高清在线| 北岛玲丝袜办公室高跟| 亚洲人成色777777无码| 91精品人妻一区二区三区蜜桃| 无码视频在线播放| 日韩无码系列| 91网站免费观看| 撸一撸成人在线做爱视频。| 成人精品秘久久久按摩下载| 欧美性爱小说网| 91大长腿美女花外围在线观看| 亚洲热视频在线观看| 午夜视频在线播放| 青青操首页| 韩国三级HD久久精品| 亚洲精品AⅤ一区二| 天天搞搞| 国产在线观看免费| 日韩99| 色色网站在线观看| 蜜桃91精品秘成人取精库| 成人视频91| 日本在线一区| 日日精品| 国产激情网址| 亚洲无码成人在线| 国产免费观看av| 一级无码在线观看| 婷婷在线播放| 激情人妻网站| 俺来也网| 婷婷五月免费视频| 一级免费A片| 丝袜美女足交| 一本无码中文字幕| 日韩三级片网站| 狼色AV| 亚洲性爱中文字幕| 91成人免费在线观看| 成人精品无码免费视频| 久久久999精品视频| 亚洲国产成人91精品| 国产内射视频| 国产视频入口| 欧美a在线| 蜜桃传媒在线播放| 国产一区二区无码| 精品a片| 偷拍综合网| 韩国三级中文字幕HD久久精品| 婷婷精品免费久久| 兔子先生和優奈玩游戲脫衣服,運氣報表優奈輸到脫精光 | 久久精品波多野结衣| 国产黄色网| 成人影视在线免费观看| 91嫩草久久久天美传媒| 艹逼无码| 九色91| 亚洲日韩精品无码| 加勒比久久综合| 国产免费高清无码| 亚洲成人AV在线观看| 91在线无码视频| 91人妻人人澡人人| 超碰v| 亚洲国产精品久久久| 亚洲AV无码成人精品区www| 青青草精品视频| 欧美日韩一区二区三区在线电影| 激情亚洲婷婷| 四川妇搡BBBB搡BBBB| 天天操天天插| 亚洲无码色婷婷| 亚洲小视频在线观看| 日韩在线中文字幕| 人人插人人| 粉嫩99国产精品久久久久久人妻| 成人做爰黄A片免费看直播室动漫| 欧美日韩黄色极品| 成人影片在线观看网站18| 亚洲无码视频在线免费观看| 国产一级黄色| 在线观看免费黄色| 亚洲激情成人| 99热这里只有精品1| 黄色免费视频网站| 偷拍综合| 日韩视频久久| 亚洲影院中文字幕| 亚洲久久久久久| 国产精品久久久久久久免牛肉蒲 | 波多野结衣黄色视频| 亚洲AV黄片| 欧美成人精品a| 91丨九色丨蝌蚪丨成人| 国产女人十八水真多| 午夜无码人妻AV大片| 五十路熟妇| 亚洲色情视频| 五月丁香激情综合| 五月婷婷黄色| 久久中文视频| 国产黄色视频免费看| 北条麻妃无码一区三区| 日本免费高清视频| av性爱在线| 亚洲第一成人网站| 北条麻妃精品| 可以看的黄色视频| 午夜精品视频| 黄片无码在线观看| 国产精品人人人人| 一本一道久久综合狠狠躁牛牛影视| 日韩欧美操逼视频| 超碰碰碰| 久久高清免费视频| 欧美一区二区三区成人片下载| 国产精品伊人| 91爱搞搞| 欧美日韩一区二区在线观看| 国产欧美日韩综合在线视频| 影音先锋成人| 免费观看黄色片| 人人操超碰在线观看| 成人免费内射视频| 一区二区毛片| 玖玖av| 婷婷综合av| 黄色成人网站在线观看| 日韩小电影免费观看高清完整版在线观| 91天天| 亚洲伊人av| 亚洲天堂2015| 狼友视频首页| 日韩免费看片| 中文字幕精品在线免费视频观看视频 | 国产亚洲视频在线观看| 久热草| 久久久久久久久黄色| 亚洲综合免费观看高清完整版在线| 91成人一区二区三区| 91视频在| 午夜性爱网址| 懂色av懂色av粉嫩av分享吧| 日韩av中文字幕在线| 成人黄色免费在线| 91av电影网| 天堂一区二区| 欧洲成人免费视频| 久久成人网豆花视频| 中文字幕亚洲人妻| 国产亲子乱婬一级A片| 亚洲天天| 亚洲成人AV无码| 欧美日韩一区二区在线| 午夜福利电影无码| 久久一区二区三区四区| 日韩免费无码视频| 五月天色色网站| 亚洲AV无码乱码国产精品| 福利黄色片:片| 青草国产| 喷潮视频| 亚洲欧洲天堂| 国产伦精品一区二区三区色大师| 亚洲AV无码一区二区三竹菊| 毛片区| 中文国产字幕| 国产黄色视频在线观看免费| 四虎人妻| 亚洲日韩在线a成| 欧美亚洲成人精品| 91传媒在线观看| 国产理伦| 免费观看黄色小视频| 一级黄色免费片| 2021av| 日韩中文字幕永久| 996热| 亚洲综合小说| 九九性爱视频| 色99视频| 日产电影一区二区三区| 中文字幕免费无码| 久热中文在线观看精品视频| 免费在线观看中文字幕| 麻豆天美蜜桃91| 久热在线| 亚洲AV男人天堂| 亚洲AV无码乱码国产精品蜜芽| 天天干在线观看| 国产aaaaaa| 国产av二区| 91AV在线观看视频| 黄片视频链接| 久久黄色视| 伊人久久福利视频| 91AV在线播放| 日韩无码一级| 五月婷婷中文| 国产精品爽爽久久久久| 色综合天天综合网国产成人网| 国产口爆在线观看| 天天中文字幕| 国产91无码| 九色PORNY丨自拍蝌蚪| 手机看片1024你懂的| 大香蕉99热| 精品免费黄色视频| 欧美精品在线免费| 操逼91视频| 综合站欧美精品| 一区二区三区免费| 中文一区二区| 久操大香蕉| 日韩精品成人| 99国产在线视频| 亚洲天堂在线视频观看| 四虎精品影院| 日本不卡一区二区三区| 亚洲第一av| 日韩在观看线| 欧美日韩免费在线观看| 亚洲高清在线观看视频| 精品国产乱码久久久久久郑州公司 | 丰满欧美熟妇免费视频| 无码人妻av黄色一区二区三区| 美女黄片| 天堂无码在线| 无码人妻一区二区三区| 国产秘久久一区二区| 欧美日韩精品在线观看| 国产高清免费视频| 91精品电影18| 人人干人人爱| 国产三级黄色视频| 操逼毛片| 丁香婷婷男人天堂| 国产午夜91人妻| 国产免费观看av| 少妇熟女视频一区二区三区| 亚洲五月六月| jzzijzzij亚洲成熟少妇在线观看| 四虎最新地址|