Spring的IOC容器之BeanFactory
Spring的IOC容器是一個IOC Service Provider,但是Spring的IOC容器和IOC Service Provider是什麼關係呢?
IOC Service Provider職責包括:1:對象創建管理,2:依賴注入服務
Spring的IOC容器職責包括:1:IOC Service Provider,2:對象生命周期管理,3:線程管理,4:企業服務集成,5:AOP支持等。。
Spring的IOC容器提供兩種容器類型:1:BeanFactory,2:ApplicationContext
BeanFactory:基礎容器類型,提供了完整的IOC服務支持。顧名思義,就是生產Bean的工廠。所以BeanFactory可以完成作為IOC Service Provider所有職責。那麼BeanFactory完成職責後,是不是要提供一個方法來get你,OK,那麼你可以不客氣的getBean()。
不過BeanFactory就是接口,幹活的還是要實現類來做,DefaultListableBeanFactory就是實現類。那麼就是DefaultListableBeanFactory.getBean()吧.
因為BeanFactory接口隻定義如果訪問容器內管理的Bean的方法,但是你BeanFactory的Bean存在哪裏?那麼BeanDefinition負責保存Bean的所以必要信息,包括對象的Class類型,是否抽象,構造方法及其其他的屬性等。當客戶端向BeanFactory請求相應對象的時候,BeanFactory會通過這些信息為客戶端返回一個完備可用的對象實例。
BeanDefinitionRegistry就是在BeanFactory的實現類中擔當Bean注冊管理的角色。
圖書館:BeanFactory
書:BeanDefinition
書架:BeanDefinitionRegistry
BeanDefinitionRegistry和BeanDefinition是什麼關係?是依賴關係,依賴關係是類與類之間的連接,依賴總是單向的,一個BeanDefinitionRegistry依賴一個BeanDefinition的定義,BeanDefinitionRegistry中沒有BeanDefinition的屬性,BeanDefinition的實例是以方法參數的方式傳入registerBeanDefinition(String beanName, BeanDefinition beanDefinition)方法中。
最後更新:2017-06-09 23:02:25