BeanFactory和ApplicationContext

來源:互聯網
上載者:User

標籤:因此   通知   資源   spring   eve   ioc   定義   擷取   com   

BeanFactory是一個類的通用工廠,可以建立並管理各種類的對象

beanFactory主要的方法就是getBean,其他功能都是通過其他介面得到不斷擴充。ListableBeanFactory: 該介面定義了訪問容器中Bean基本資料的若干方法,如查看Bean的個數、擷取某一類型Bean的配置名、查看容器中是否包括某一Bean等。HierarchicalBeanFactory:父子級聯IoC容器的介面,子容器可以通過介面方法訪問父容器。ConfigurableBeanFactory:這是一個重要的借口,增強了IOC容器的可定製性。塌地你故意了設定類裝載器。屬性編輯器、容器初始化後置處理器等方法。AutowireCapableBeanFactory:定義了將容器中的Bean按照=某種規則進行自動裝配的方法。SingletonBeanRegistry:定義了允許在運行期向容器註冊單一實例Bean的方法。BeanDefinitionRegistry:Spring設定檔中每一個<bean>節點元素在Spring容器裡都通過一個BeanDefinition對象表示,它描述了Bean的配置資訊。而BeanDefinition Registry介面提供了向容器手工註冊BeanDefinition對象的方法 初始化BeanFactory:    XmlBeanDefinitionReader通過Resource裝載Spring配置資訊並啟動IoC容器,然後通過BeanFactory.getBean方法從IoC容器中擷取Bean。BeanFactory啟動Ioc容器時,並不會初始化設定檔中定義的Bean,初始化動作發生在第一個調用時,對於單一實例的Bean來說,BeanFactory會緩衝Bean執行個體,所以第二次使用getBean()擷取Bean時,將直接從IoC容器的緩衝中擷取Bean執行個體。    Spring在DefaultSingletonBeanRegistry類中提供了一個用於緩衝單一實例Bean的緩衝器,它是一個用HashMap實現的緩衝器,但實力的Bean以beanName為鍵儲存在這個HashMap中。ApplicationContext:ApplicationEventPublisher:讓容器擁有發布應用上下文事件的功能,包括容器啟動時間、關閉事件等。實現了ApplicationListener事件監聽介面的Bean可以接收到容器事件,並對事件進行相應處理。在AplicationContext抽象實作類別AbstractApplicationContext中存在一個ApplicationEventMulticaster,它負責儲存所有的監聽器,以便在容器產生上下文事件時通知這些事件監聽者。MessageSource:為應用提供il8n國際化訊息訪問的功能。ResourcePatternResolver:所有ApplicationContext實作類別都實現了類似於PathMatchingResourcePatternResolver的功能,可以通過帶首碼的Ant風格的資源檔路徑裝載Spring的設定檔。LifeCycle:該介面共識被ApplicationContext實現及具體Bean實現,ApplicationContext會將start/stop 的資訊傳遞給容器中所有實現了該介面的Bean,以達到管理和控制JMX、任務調度等面對。 ConfigurableApplicationContext 擴充與ApplicationContext,它新增了兩個主要的方法:refresh()和close(),讓ApplicationContext具有啟動、重新整理和關閉應用內容相關的能力。 ApplicationContext的初始化和BeanFactory有一個重大的缺別:BeanFactory在初始化容器時,並未執行個體化Bean,直到第一次訪問某個Bean時才執行個體化目標Bean;而ApplicationContext則在初始化應用上下文時就執行個體化所有的單一實例的Bean。因此ApplicationContext的初始化時間迴避BeanFactory稍長一些

BeanFactory和ApplicationContext

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.