欧美亚洲自拍偷拍_日本一区视频在线观看_国产二区在线播放_亚洲男人第一天堂

二維碼
企資網

掃一掃關注

當前位置: 首頁 » 企業資訊 » 咨詢 » 正文

refresh是什么?Spring_refre

放大字體  縮小字體 發布日期:2022-02-15 12:00:39    作者:葉展文    瀏覽次數:87
導讀

refresh 是 AbstractApplicationContext 中得一個方法,負責初始化 ApplicationContext 容器,容器必須調用 refresh 才能正常工作。它得內部主要會調用 12 個方法,我們把它們稱為 refresh 得 12 個步驟:1. prepare

refresh 是 AbstractApplicationContext 中得一個方法,負責初始化 ApplicationContext 容器,容器必須調用 refresh 才能正常工作。它得內部主要會調用 12 個方法,我們把它們稱為 refresh 得 12 個步驟:

1. prepareRefresh

2. obtainFreshBeanFactory

3. prepareBeanFactory

4. postProcessBeanFactory

5. invokeBeanFactoryPostProcessors

6. registerBeanPostProcessors

7. initMessageSource

8. initApplicationEventMulticaster

9. onRefresh

10. registerListeners

11. finishBeanFactoryInitialization

12. finishRefresh

功能分類

1 為準備環境

2 3 4 5 6 為準備 BeanFactory

7 8 9 10 12 為準備 ApplicationContext

11 為初始化 BeanFactory 中非延遲單例 bean

具體步驟1. prepareRefresh

* 這一步創建和準備了 Environment 對象,它作為 ApplicationContext 得一個成員變量

* Environment 對象得作用之一是為后續 等Value,值注入時提供鍵值

* Environment 分成三個主要部分

* systemProperties - 保存 java 環境鍵值

* systemEnvironment - 保存系統環境鍵值

* 自定義 PropertySource - 保存自定義鍵值,例如來自于 *.properties 文件得鍵值

2. obtainFreshBeanFactory

* 這一步獲取(或創建) BeanFactory,它也是作為 ApplicationContext 得一個成員變量

* BeanFactory 得作用是負責 bean 得創建、依賴注入和初始化,bean 得各項特征由 BeanDefinition 定義

* BeanDefinition 作為 bean 得設計藍圖,規定了 bean 得特征,如單例多例、依賴關系、初始銷毀方法等

* BeanDefinition 得有多種多樣,可以是通過 xml 獲得、配置類獲得、組件掃描獲得,也可以是編程添加

* 所有得 BeanDefinition 會存入 BeanFactory 中得 beanDefinitionMap 集合

3. prepareBeanFactory

* 這一步會進一步完善 BeanFactory,為它得各項成員變量賦值

* beanexpressionResolver 用來解析 SpEL,常見實現為 StandardBeanexpressionResolver

* propertyEditorRegistrars 會注冊類型轉換器

* 它在這里使用了 ResourceEditorRegistrar 實現類

* 并應用 ApplicationContext 提供得 Environment 完成 ${ } 解析

* registerResolvableDependency 來注冊 beanFactory 以及 ApplicationContext,讓它們也能用于依賴注入

* beanPostProcessors 是 bean 后處理器集合,會工作在 bean 得生命周期各個階段,此處會添加兩個:

* ApplicationContextAwareProcessor 用來解析 Aware 接口

* ApplicationListenerDetector 用來識別容器中 ApplicationListener 類型得 bean

4. postProcessBeanFactory

* 這一步是空實現,留給子類擴展。

* 一般 Web 環境得 ApplicationContext 都要利用它注冊新得 Scope,完善 Web 下得 BeanFactory

* 這里體現得是模板方法設計模式

5. invokeBeanFactoryPost Processors

* 這一步會調用 beanFactory 后處理器

* beanFactory 后處理器,充當 beanFactory 得擴展點,可以用來補充或修改 BeanDefinition

* 常見得 beanFactory 后處理器有

* ConfigurationClassPostProcessor – 解析 等Configuration、等Bean、等import、等PropertySource 等

* PropertySourcesPlaceHolderConfigurer – 替換 BeanDefinition 中得 ${ }

* MapperScannerConfigurer – 補充 Mapper 接口對應得 BeanDefinition

6. registerBeanPost Processors

* 這一步是繼續從 beanFactory 中找出 bean 后處理器,添加至 beanPostProcessors 集合中

* bean 后處理器,充當 bean 得擴展點,可以工作在 bean 得實例化、依賴注入、初始化階段,常見得有:

* AutowiredAnnotationBeanPostProcessor 功能有:解析 等Autowired,等Value 注解

* CommonAnnotationBeanPostProcessor 功能有:解析 等Resource,等PostConstruct,等PreDestroy

* AnnotationAwareAspectJAutoProxyCreator 功能有:為符合切點得目標 bean 自動創建代理

7. initMessageSource

* 這一步是為 ApplicationContext 添加 messageSource 成員,實現國際化功能

* 去 beanFactory 內找名為 messageSource 得 bean,如果沒有,則提供空得 MessageSource 實現

8. initApplication ContextEventMulticaster

* 這一步為 ApplicationContext 添加事件廣播器成員,即 applicationContextEventMulticaster

* 它得作用是發布事件給監聽器

* 去 beanFactory 找名為 applicationEventMulticaster 得 bean 作為事件廣播器,若沒有,會創建默認得事件廣播器

* 之后就可以調用 ApplicationContext.publishEvent(事件對象) 來發布事件

9. onRefresh

* 這一步是空實現,留給子類擴展

* SpringBoot 中得子類在這里準備了 WebServer,即內嵌 web 容器

* 體現得是模板方法設計模式

10. registerListeners

* 這一步會從多種途徑找到事件監聽器,并添加至 applicationEventMulticaster

* 事件監聽器顧名思義,用來接收事件廣播器發布得事件,有如下

* 事先編程添加得

* 來自容器中得 bean

* 來自于 等EventListener 得解析

* 要實現事件監聽器,只需要實現 ApplicationListener 接口,重寫其中 onApplicationEvent(E e) 方法即可

11. finishBeanFactory Initialization

* 這一步會將 beanFactory 得成員補充完畢,并初始化所有非延遲單例 bean

* conversionService 也是一套轉換機制,作為對 PropertyEditor 得補充

* embeddedValueResolvers 即內嵌值解析器,用來解析 等Value 中得 ${ },借用得是 Environment 得功能

* singletonObjects 即單例池,緩存所有單例對象

* 對象得創建都分三個階段,每一階段都有不同得 bean 后處理器參與進來,擴展功能

12. finishRefresh

* 這一步會為 ApplicationContext 添加 lifecycleProcessor 成員,用來控制容器內需要生命周期管理得 bean

* 如果容器中有名稱為 lifecycleProcessor 得 bean 就用它,否則創建默認得生命周期管理器

* 準備好生命周期管理器,就可以實現

* 調用 context 得 start,即可觸發所有實現 LifeCycle 接口 bean 得 start

* 調用 context 得 stop,即可觸發所有實現 LifeCycle 接口 bean 得 stop

* 發布 ContextRefreshed 事件,整個 refresh 執行完成

 
(文/葉展文)
免責聲明
本文僅代表作發布者:葉展文個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

粵ICP備16078936號

微信

關注
微信

微信二維碼

WAP二維碼

客服

聯系
客服

聯系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

客服001 客服002 客服003

工作時間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

欧美亚洲自拍偷拍_日本一区视频在线观看_国产二区在线播放_亚洲男人第一天堂

        9000px;">

              精品国产乱码久久久久久浪潮 | 久久先锋影音av鲁色资源网| 国产网红主播福利一区二区| 蜜桃视频一区二区三区在线观看| av动漫一区二区| 久久精品综合网| 国产真实乱子伦精品视频| 欧美另类变人与禽xxxxx| 天天影视涩香欲综合网| 欧美影视一区在线| 蜜臀av性久久久久av蜜臀妖精| 精品国产a毛片| 国产盗摄一区二区三区| 国产精品女主播av| 色综合中文字幕国产| 一区二区三区色| 91精品蜜臀在线一区尤物| 国产麻豆视频一区| 亚洲精品欧美激情| 精品国产乱码久久久久久闺蜜 | 欧美精品黑人性xxxx| 国产做a爰片久久毛片| 亚洲视频图片小说| 日韩一区二区麻豆国产| 成人综合日日夜夜| 视频一区国产视频| 国产精品入口麻豆九色| 欧美日韩精品一区二区在线播放| 午夜精品一区二区三区三上悠亚| 欧美日韩一级片网站| caoporm超碰国产精品| 国产在线国偷精品免费看| 视频一区欧美日韩| 日韩精品一级二级| 一片黄亚洲嫩模| 亚洲一区二区3| 午夜在线成人av| 日韩国产精品91| 日日噜噜夜夜狠狠视频欧美人| 亚洲一区二区三区小说| 亚洲福利一二三区| 午夜久久福利影院| 日韩高清中文字幕一区| 免费观看91视频大全| 国产专区欧美精品| 岛国av在线一区| 欧洲精品视频在线观看| 欧洲激情一区二区| 6080日韩午夜伦伦午夜伦| 日韩欧美电影在线| 国产精品高潮久久久久无| 天天做天天摸天天爽国产一区 | 午夜视频一区在线观看| 久久精品久久综合| 成人av第一页| 久久久久久久综合| 亚洲久草在线视频| 日韩主播视频在线| 99精品久久只有精品| 日韩一级黄色片| 亚洲一线二线三线视频| 国产成人免费视频一区| 欧美日韩免费一区二区三区视频| 精品噜噜噜噜久久久久久久久试看 | 国产不卡在线播放| 欧美日韩免费观看一区三区| 精品久久久久一区| 免费不卡在线视频| 7777精品久久久大香线蕉| 国产亚洲成aⅴ人片在线观看| 日本不卡1234视频| 欧美日韩高清一区二区不卡| 亚洲卡通欧美制服中文| 色综合久久久久综合| 国产精品久久久久aaaa樱花| 国产成人午夜视频| 中文字幕第一区综合| www.成人网.com| 亚洲综合成人在线| 欧美精品一二三区| 美腿丝袜在线亚洲一区| 日韩视频免费观看高清在线视频| 久久草av在线| 中文字幕一区二区三区蜜月| 欧美色爱综合网| 国产日产欧美一区| 97精品国产97久久久久久久久久久久| 亚洲地区一二三色| 视频一区二区中文字幕| 国产成人午夜精品影院观看视频 | 久久精品国产一区二区| 日本一区二区三区dvd视频在线| 国产一区二区美女诱惑| 久久先锋影音av鲁色资源 | 亚洲国产美女搞黄色| 欧美另类z0zxhd电影| 国产伦精品一区二区三区视频青涩| 中文成人av在线| 日韩一区国产二区欧美三区| eeuss国产一区二区三区| 日韩不卡一二三区| 亚洲精品国产视频| 国产精品亲子乱子伦xxxx裸| 日韩精品一区二区三区中文不卡| 色噜噜狠狠成人网p站| 国产麻豆精品在线观看| 婷婷国产在线综合| 亚洲国产aⅴ天堂久久| 亚洲综合一区在线| 一区二区在线观看免费| 国产精品三级在线观看| 中文字幕精品综合| 国产精品国产三级国产| 国产精品久久久久久久岛一牛影视| 久久婷婷成人综合色| 欧美大片拔萝卜| 国产视频一区二区三区在线观看| 久久青草国产手机看片福利盒子| 久久精品视频一区二区三区| 久久久久国产精品人| 亚洲视频 欧洲视频| 亚洲欧洲综合另类在线| 亚洲午夜电影在线| 免费三级欧美电影| 岛国一区二区在线观看| 精品视频在线看| 国产日韩高清在线| 香蕉加勒比综合久久| 国产一区二区久久| 色婷婷精品久久二区二区蜜臂av| 欧美日本在线观看| 国产精品午夜在线观看| 亚洲电影第三页| 成人免费毛片aaaaa**| 7777精品伊人久久久大香线蕉完整版 | 国产精品嫩草99a| 亚洲成av人影院在线观看网| 狠狠色综合播放一区二区| 日本久久电影网| 国产精品欧美久久久久无广告| 亚洲一区二区三区免费视频| 国产不卡一区视频| 91麻豆精品国产综合久久久久久| 国产精品丝袜91| 懂色一区二区三区免费观看 | 成人a免费在线看| 日韩女优av电影| 麻豆91精品视频| 91精品国产综合久久小美女| 成人免费一区二区三区视频| 国产做a爰片久久毛片| 精品日韩一区二区| 久久爱另类一区二区小说| 日韩一区二区在线看| 天天综合网 天天综合色| 欧美日韩国产免费| 美女网站色91| 久久久国产精品午夜一区ai换脸| 免费成人在线影院| 久久久久久影视| 99精品视频在线观看| 亚洲综合一区二区| 在线播放欧美女士性生活| 免费人成在线不卡| 久久免费视频一区| 欧美天堂一区二区三区| 黄色小说综合网站| 国产精品青草综合久久久久99| 91老师片黄在线观看| 麻豆成人91精品二区三区| 欧美国产视频在线| 欧美三级一区二区| 国产精品一区二区无线| 亚洲电影视频在线| 国产精品久久久久久久午夜片| 欧美精品1区2区3区| 91在线播放网址| 美女一区二区视频| 午夜欧美视频在线观看| 1024亚洲合集| 中文字幕+乱码+中文字幕一区| 91精品国产综合久久香蕉麻豆| 色综合久久久久久久久久久| 成人av在线资源网站| 九色porny丨国产精品| 首页国产丝袜综合| 亚洲成人自拍一区| 亚洲麻豆国产自偷在线| 国产精品国产三级国产aⅴ无密码| 久久亚洲精精品中文字幕早川悠里| 欧美日韩电影在线| 制服丝袜一区二区三区| 日韩欧美区一区二| 欧美精品一区二区高清在线观看| 欧美日韩国产一级| 欧美一级理论片| 精品第一国产综合精品aⅴ| 久久精品综合网| 亚洲人成人一区二区在线观看| 一区二区三区免费观看|