91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring IOC有哪些知識點

發布時間:2021-12-08 09:48:32 來源:億速云 閱讀:121 作者:iii 欄目:大數據

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

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

IOC 大致流程

spring容器的入口refresh()

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

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

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

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

  1. obtainFreshBeanFactory()

獲取beanFactory實例

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

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

  1. prepareBeanFactory(beanFactory):

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

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

  2. beanFactory.setBeanExpressionResolver:支持相關的表達式語言的解析

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

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

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

    1. if (!beanFactory.containsLocalBean(ENVIRONMENT_BEAN_NAME)):注冊環境變量相關bean

  1. postProcessBeanFactory(beanFactory)

子類通過重寫這個方法來實現自己的業務邏輯。

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

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

  1. registerBeanPostProcessors(beanFactory)

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

  1. initMessageSource()

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

  1. initApplicationEventMulticaster()

初始化事件派發器,

  1. onRefresh()

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

  1. registerListeners()

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

  1. finishBeanFactoryInitialization(beanFactory)

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

  1. finishRefresh()

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

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

IOC核心流程圖

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

到此,相信大家對“Spring IOC有哪些知識點”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东港市| 鹰潭市| 怀仁县| 泉州市| 望都县| 吉木萨尔县| 成都市| 长顺县| 丰都县| 鄱阳县| 正定县| 县级市| 织金县| 应用必备| 油尖旺区| 横峰县| 郸城县| 博湖县| 汤阴县| 黑龙江省| 屯昌县| 吐鲁番市| 扎兰屯市| 瑞安市| 鹤壁市| 秭归县| 天柱县| 金阳县| 浪卡子县| 马关县| 柳州市| 红安县| 彭州市| 阜南县| 五寨县| 长白| 芒康县| 宜春市| 新乐市| 濮阳县| 仙游县|