簡單聊聊BeanFactory繼承體系

Spring系列文章首發:簡單聊聊BeanFactory繼承體系 緩存

1.BeanDefinitionRegistry 註冊表

Spring 配置文件中每個節點元素在 Spring 容器裏都經過一個 BeanDefinition 對象表示,它描述了 Bean 的配置信息。而 BeanDefinitionRegistry 接口提供了向容器手工註冊BeanDefinition 對象的方法。編輯器

2.BeanFactory 頂層接口

位於類結構樹的頂端 ,它最主要的方法就是 getBean(String beanName),該方法從容器中返回特定名稱的 Bean,BeanFactory 的功能經過其餘的接口獲得不斷擴展。cdn

3.ListableBeanFactory

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

4.HierarchicalBeanFactory 父子級聯

父子級聯 IoC 容器的接口,子容器能夠經過接口方法訪問父容器; 經過HierarchicalBeanFactory 接口, Spring 的 IoC 容器能夠創建父子層級關聯的容器體系,子容器能夠訪問父容器中的 Bean,但父容器不能訪問子容器的 Bean。Spring 使用父子容器實現了不少功能,好比在 Spring MVC 中,展示層 Bean 位於一個子容器中,而業務層和持久層的 Bean 位於父容器中。這樣,展示層 Bean 就能夠引用業務層和持久層的 Bean,而業務層和持久層的 Bean 則看不到展示層的 Bean。blog

5.ConfigurableBeanFactory

是一個重要的接口,加強了 IoC 容器的可定製性,它定義了設置類裝載器、屬性編輯器、容器初始化後置處理器等方法。繼承

6.AutowireCapableBeanFactory 自動裝配

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

7.SingletonBeanRegistry 運行期間註冊單例 Bean

定義了容許在運行期間向容器註冊單實例 Bean 的方法;對於單實例( singleton)的 Bean 來講,BeanFactory 會緩存 Bean 實例,因此第二次使用 getBean() 獲取 Bean 時將直接從IoC 容器的緩存中獲取 Bean 實例。Spring 在 DefaultSingletonBeanRegistry 類中提供了一個用於緩存單實例 Bean 的緩存器,它是一個用 HashMap 實現的緩存器,單實例的 Bean 以beanName 爲鍵保存在這個 HashMap 中。get

相關文章
相關標籤/搜索