Ioc 容器之 BeanFactory--10-06

spring 提供了兩種容器類型:

  • BeanFactory 默認採用延遲初始化策略【lazy_load】。只有當客戶端對象需要訪問容器中某個受管對象的時候,纔會對該受管對象進行初始化以及依賴注入的操作。所以,容器啓動初期速度快,對資源有限,功能要求不是很嚴格的場景下,BeanFactory是比較合適的Ioc容器選擇。
  • ApplicationContext 【講到ApplicationContext 的時候具體探討】

BeanFactory就像一個汽車工廠,從其他汽車零件廠商或者自己的零件生產部門取得汽車零件送入這個汽車生產廠,最後,只需要從生產線的終點取得成品汽車就可以了。【結合工廠模式思考】

BeanFactory的對象註冊和依賴綁定的方式:

1 直接編碼方式:

BeanFactory接口定義瞭如何訪問容器內管理的bean的方法。BeanDefinitionRegistry定義了bean的註冊邏輯,還有一些其他的實現負責bean的管理工作等,具體代碼詳見【spring揭祕P27】。

2 外部配置文件方式:

Spring的Ioc容器支持兩種格式,Properties文件格式和XML格式文件。通常情況下,由BeanDefinitionReader 的相應實現類負責將配置文件的內容讀取並映射到BeanDefinition,然後將映射後的BeanDefinition註冊到BeanDefinitionRegistry,之後由BeanDefinitionRegistry完成bean的註冊和加載。Properties文件格式和XML格式文件都是這種模式去完成讀取配置的。

3 註解方式:

限制條件,spring 2.5 java 5版本及之後。通過使用@Autowired以及@Component對類進行標記,@Autowired告知spring容器需要爲當前對象注入哪些依賴對象。@Component則是配合spring 2.5中的新的classpath-scanning功能使用。@Component會到指定的包下掃描標註有@Component的類,如果找到,測添加到容器進行管理,並根據他們所標註的@Autowired爲這些類注入符合條件的依賴對象。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章