欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SpringIOC原理與IOC容器實現(xiàn)

一. Spring IOC 原理

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供興平網站建設、興平做網站、興平網站設計、興平網站制作等企業(yè)網站建設、網頁設計與制作、興平企業(yè)網站模板建站服務,10多年興平做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

1. 概念

Spring 通過一個配置文件描述 Bean 及 Bean 之間的依賴關系,利用 Java 語言的反射功能實例化Bean 并建立 Bean 之間的依賴關系。 Spring 的 IoC 容器在完成這些底層工作的基礎上,還提供了 Bean 實例緩存、生命周期管理、 Bean 實例代理、事件發(fā)布、資源裝載等高級服務。

2. Spring 容器高層視圖

Spring 啟動時讀取應用程序提供的 Bean 配置信息,并在 Spring 容器中生成一份相應的 Bean 配置注冊表,然后根據(jù)這張注冊表實例化 Bean,裝配好 Bean 之間的依賴關系,為上層應用提供準備就緒的運行環(huán)境。其中 Bean 緩存池為 HashMap 實現(xiàn)

Spring IOC 原理與IOC 容器實現(xiàn)

3. IOC 容器實現(xiàn)

BeanFactory-框架基礎設施

BeanFactory 是 Spring 框架的基礎設施,面向 Spring 本身;ApplicationContext 面向使用Spring 框架的開發(fā)者,幾乎所有的應用場合我們都直接使用 ApplicationContext 而非底層的 BeanFactory。

Spring IOC 原理與IOC 容器實現(xiàn)

BeanDefinitionRegistry 注冊表

(1). Spring 配置文件中每一個節(jié)點元素在 Spring 容器里都通過一個 BeanDefinition 對象表示,它描述了 Bean 的配置信息。而 BeanDefinitionRegistry 接口提供了向容器手工注冊BeanDefinition 對象的方法。

BeanFactory 頂層接口

(2). 位于類結構樹的頂端 ,它最主要的方法就是 getBean(String beanName),該方法從容器中返回特定名稱的 Bean,BeanFactory 的功能通過其他的接口得到不斷擴展:

ListableBeanFactory

(3). 該接口定義了訪問容器中 Bean 基本信息的若干方法,如查看 Bean 的個數(shù)、獲取某一類型Bean 的配置名、查看容器中是否包括某一 Bean 等方法;

HierarchicalBeanFactory 父子級聯(lián)

(4). 父子級聯(lián) IoC 容器的接口,子容器可以通過接口方法訪問父容器; 通過HierarchicalBeanFactory 接口, Spring 的 IoC 容器可以建立父子層級關聯(lián)的容器體系,子容器可以訪問父容器中的 Bean,但父容器不能訪問子容器的 Bean。Spring 使用父子容器實現(xiàn)了很多功能,比如在 Spring MVC 中,展現(xiàn)層 Bean 位于一個子容器中,而業(yè)務層和持久層的 Bean 位于父容器中。這樣,展現(xiàn)層 Bean 就可以引用業(yè)務層和持久層的 Bean,而業(yè)務層和持久層的 Bean 則看不到展現(xiàn)層的 Bean。

ConfigurableBeanFactory

(5). 是一個重要的接口,增強了 IoC 容器的可定制性,它定義了設置類裝載器、屬性編輯器、容器初始化后置處理器等方法;

AutowireCapableBeanFactory 自動裝配

(6). 定義了將容器中的 Bean 按某種規(guī)則(如按名字匹配、按類型匹配等)進行自動裝配的方法;

SingletonBeanRegistry 運行期間注冊單例 Bean

(7). 定義了允許在運行期間向容器注冊單實例 Bean 的方法;對于單實例( singleton)的 Bean來說,BeanFactory 會緩存 Bean 實例,所以第二次使用 getBean() 獲取 Bean 時將直接從IoC 容器的緩存中獲取 Bean 實例。Spring 在 DefaultSingletonBeanRegistry 類中提供了一個用于緩存單實例 Bean 的緩存器,它是一個用 HashMap 實現(xiàn)的緩存器,單實例的 Bean 以beanName 為鍵保存在這個 HashMap 中。

依賴日志框框

(8). 在初始化 BeanFactory 時,必須為其提供一種日志框架,比如使用 Log4J, 即在類路徑下提供 Log4J 配置文件,這樣啟動 Spring 容器才不會報錯。

二.ApplicationContext 面向開發(fā)應用

ApplicationContext 由 BeanFactory 派生而來,提供了更多面向實際應用的功能。

ApplicationContext 繼承了 HierarchicalBeanFactory 和 ListableBeanFactory 接口,在此基礎上,還通過多個其他的接口擴展了 BeanFactory 的功能:

Spring IOC 原理與IOC 容器實現(xiàn)

1. ClassPathXmlApplicationContext:默認從類路徑加載配置文件

2. FileSystemXmlApplicationContext:默認從文件系統(tǒng)中裝載配置文件

3. ApplicationEventPublisher:讓容器擁有發(fā)布應用上下文事件的功能,包括容器啟動事件、關閉事件等。

4. MessageSource:為應用提供 i18n 國際化消息訪問的功能;

5. ResourcePatternResolver : 所 有 ApplicationContext 實現(xiàn)類都實現(xiàn)了類似于PathMatchingResourcePatternResolver 的功能,可以通過帶前綴的 Ant 風格的資源文件路徑裝載 Spring 的配置文件。

6. LifeCycle:該接口是 Spring 2.0 加入的,該接口提供了 start()和 stop()兩個方法,主要用于控制異步處理過程。在具體使用時,該接口同時被 ApplicationContext 實現(xiàn)及具體Bean 實現(xiàn), ApplicationContext 會將 start/stop 的信息傳遞給容器中所有實現(xiàn)了該接口的 Bean,以達到管理和控制 JMX、任務調度等目的。

7. ConfigurableApplicationContext 擴展于 ApplicationContext,它新增加了兩個主要的方法: refresh()和 close(),讓 ApplicationContext 具有啟動、刷新和關閉應用上下文的能力。在應用上下文關閉的情況下調用 refresh()即可啟動應用上下文,在已經啟動的狀態(tài)下,調用 refresh()則清除緩存并重新裝載配置信息,而調用 close()則可關閉應用上下文。

三.WebApplication 體系架構

WebApplicationContext 是專門為 Web 應用準備的,它允許從相對于 Web 根目錄的路徑中裝載配置文件完成初始化工作。從 WebApplicationContext 中可以獲得ServletContext 的引用,整個 Web 應用上下文對象將作為屬性放置到 ServletContext中,以便 Web 應用環(huán)境可以訪問 Spring 應用上下文。

Spring IOC 原理與IOC 容器實現(xiàn)

文章題目:SpringIOC原理與IOC容器實現(xiàn)
當前網址:http://aaarwkj.com/article6/ijpgog.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網頁設計公司、網站設計公司、品牌網站設計網站制作、關鍵詞優(yōu)化網站導航

廣告

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

搜索引擎優(yōu)化
丁香婷婷麻豆激情综合网| 国语精品对白交换日韩| 午夜毛片免费在线播放| 精品人妻系列一区二区| 欧美护士激情第一欧美精品| av天堂高清在线观看| 91欧美精品综合在线| 丝袜美腿亚洲综合第一区| 国产尹人99大香蕉| 92国产精品午夜福利| 丝袜美腿一区二区三区| 日韩国产欧美亚洲一区| 亚洲综合色婷婷在线影院| 日本东京一区二区三区| 欧美日韩视频一区二区| 色综合婷婷九月中文字幕| 日本丝袜福利在线观看| 日本高清三级精品一区二区| 男女激情视频久久精品| 婷婷国产成人精品一区二| 久久一区二区三区播放| 亚洲精品有码中文字幕| 亚洲午夜黄色生活片观看| 中文字幕加勒比东京热| 亚洲成人日韩在线播放| 亚洲欧洲中文字幕一区二区| 老熟妇奂伦一区二区三区| 亚洲欧美经典精品专区| 欧美一级特黄大片做受| 亚洲av天堂在线观看| 国产精品亚洲二区三区| 国产精品三级电影网| 日本中文字幕一区二区视频 | 日韩欧美国产精品加勒比| av天堂黄色在线观看| 亚洲综合另类视频在线观看| 亚洲av一本岛在线播放| 欧美日韩免费一区二三区| 日本成人午夜福利在线观看| 欧美三级影院网上在线| 日韩av专区在线免费观看|