成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SpringIOC有哪些知識點

本篇內(nèi)容主要講解“Spring IOC有哪些知識點”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Spring IOC有哪些知識點”吧!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、新河網(wǎng)站維護、網(wǎng)站推廣。

AbstractApplicationContextrefresh()方法是spring的核心,在其中完成了容器的初始化。我們先簡單看下業(yè)務(wù)Bean的聲明流程:
Spring IOC有哪些知識點
業(yè)務(wù)Bean的流程只是refresh函數(shù)中關(guān)于業(yè)務(wù)Bean創(chuàng)建的一個item,不過大致流程都是類似的。

IOC 大致流程

spring容器的入口refresh()

  1. prepareRefresh():刷新前的預處理

  1. initPropertySources():初始化一些屬性設(shè)置;子類自定義個性化的屬性設(shè)置方法

  2. getEnvironment().validateRequiredProperties():檢驗屬性的合法性等

  3. this.earlyApplicationEvents = new LinkedHashSet<>();保存容器中的一些早期的事件

  1. obtainFreshBeanFactory()

獲取beanFactory實例

  1. refreshBeanFactory();刷新或創(chuàng)建beanFactory

  2. getBeanFactory():將剛生成的beanFactory返回

  1. prepareBeanFactory(beanFactory):

beanFactory預準備工作,(以上創(chuàng)建的beanFactory好多屬性沒有值,只有一些默認的值)

  1. beanFactory.setBeanClassLoader(getClassLoader());設(shè)置BeanFactory的類加載器

  2. beanFactory.setBeanExpressionResolver:支持相關(guān)的表達式語言的解析

  3. ignoreDependencyInterface:設(shè)置忽略的自動裝配接口 EnvironmentAware EmbeddedValueResolverAware

    1. beanFactory.registerResolvableDependency:注冊可以解析的自動裝配:我們能直接在任何組件中自動注入 BeanFactory ApplicationContext

  4. beanFactory.addBeanPostProcessor(new ApplicationListenerDetector(this));添加監(jiān)聽檢測的處理器

    1. if (!beanFactory.containsLocalBean(ENVIRONMENT_BEAN_NAME)):注冊環(huán)境變量相關(guān)bean

  1. postProcessBeanFactory(beanFactory)

子類通過重寫這個方法來實現(xiàn)自己的業(yè)務(wù)邏輯。

PS: 通過上面準備BeanFactory的創(chuàng)建跟準備完成
5. invokeBeanFactoryPostProcessors(beanFactory)

執(zhí)行BeanFactoryPostProcessor的后置處理器。是在2 跟3 滯后執(zhí)行的。這里有兩個接口需要實現(xiàn) BeanFactoryPostProcessorBeanDefinitionRegistryPostProcessor

  1. registerBeanPostProcessors(beanFactory)

實例化和注冊beanFactory中擴展了BeanPostProcessorbean。功能就是攔截我們業(yè)務(wù)Bean創(chuàng)建通過注解動態(tài)代理的方式進行增強,,可參考 AOP 流程,

  1. initMessageSource()

標簽國際化資源,初始化MessageSource(國際化功能:消息解析,消息綁定)

  1. initApplicationEventMulticaster()

初始化事件派發(fā)器,

  1. onRefresh()

用來留給子類重寫的方法,當容器刷新的時候可以自定義邏輯。

  1. registerListeners()

給容器中將所有項目的ApplicationListener 注冊進來。

  1. finishBeanFactoryInitialization(beanFactory)

將項目中所以非懶加載的單實例Bean進行初始化加載,具體在 AOP 流程也跟過了。

  1. finishRefresh()

refresh做完之后需要做的其他事情。清除上下文資源緩存(如掃描中的ASM元數(shù)據(jù))
初始化上下文的生命周期處理器,并刷新(找出Spring容器中實現(xiàn)了Lifecycle接口的bean并執(zhí)行start()方法)。發(fā)布ContextRefreshedEvent事件告知對應(yīng)的ApplicationListener進行響應(yīng)的操作

大致流程: 刷新下做一些預處理工作,BeanFactory實例化,BeanFactory若干參數(shù)賦值,BeanFactory的后置處理器,一些注解Bean的注冊操作,國際化,事件發(fā)布機制,監(jiān)聽機制,業(yè)務(wù)Bean的創(chuàng)建。 涉及到單例模式,工程模式,適配器模式,以及動態(tài)代理等等。

IOC核心流程圖

圖片較大如看不清,可公眾號【SoWhat1412】回復AOP獲得高清圖片
Spring IOC有哪些知識點

到此,相信大家對“Spring IOC有哪些知識點”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

分享標題:SpringIOC有哪些知識點
當前網(wǎng)址:http://jinyejixie.com/article36/posopg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站建設(shè)、電子商務(wù)網(wǎng)站制作

廣告

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

商城網(wǎng)站建設(shè)
怀集县| 乌鲁木齐市| 霍林郭勒市| 屏山县| 阜康市| 伊春市| 民丰县| 广丰县| 陕西省| 凤城市| 天台县| 浠水县| 广东省| 城口县| 隆回县| 米易县| 宜阳县| 洞头县| 休宁县| 天台县| 海原县| 田阳县| 阜阳市| 连江县| 陇南市| 连平县| 鄂伦春自治旗| 白玉县| 白山市| 晋宁县| 建阳市| 麻江县| 长春市| 阿坝县| 宜兴市| 贡觉县| 南投县| 图片| 通榆县| 嵊州市| 襄垣县|