BeanFactory 簡(jiǎn)介以及它 和FactoryBean的區(qū)別

參考:BeanFactory 和 FactoryBean? ?




一:簡(jiǎn)單的說(shuō)

?BeanFactory 是接口,提供了IOC容器最基本的形式,給具體的IOC容器的實(shí)現(xiàn)提供了規(guī)范。

? ? FactoryBean 也是接口,為IOC容器中Bean的實(shí)現(xiàn)提供了更加靈活的方式,F(xiàn)actoryBean在IOC容器的基礎(chǔ)上給Bean的實(shí)現(xiàn)加上了一個(gè)簡(jiǎn)單的工廠模式和裝飾模式 ,我們可以在getObject()方法中靈活配置.

? ? ? ?區(qū)別:BeanFaactory 是哥Factory,也就是IOC容器或?qū)ο蠊S,F(xiàn)actoryBean是個(gè)Bean.在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)來(lái)進(jìn)行管理的。但對(duì)FactoryBean而言,這個(gè)Bean不是簡(jiǎn)單的Bean,而是一個(gè)能生產(chǎn)或者修飾對(duì)象生成的工廠Bean,它的實(shí)現(xiàn)與設(shè)計(jì)模式中的工廠模式和修飾器模式類似 .

二:復(fù)雜的說(shuō)

BeanFactory:

1:負(fù)責(zé)生產(chǎn)和管理bean的一個(gè)工廠。

2:事IOC容器的核心接口,它的職責(zé)包括:實(shí)例化、定位、配置應(yīng)用程序中的對(duì)象及建立這些對(duì)象的依賴。

3:多種實(shí)現(xiàn):如?DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等,其中XmlBeanFactory就是常用的一個(gè),該實(shí)現(xiàn)將以XML方式描述組成應(yīng)用的對(duì)象及對(duì)象間的依賴關(guān)系。

?FactoryBean

?? ?FactoryBean是一個(gè)接口,當(dāng)在IOC容器中的Bean實(shí)現(xiàn)了FactoryBean后,通過(guò)getBean(String BeanName)獲取到的Bean對(duì)象并不是FactoryBean的實(shí)現(xiàn)類對(duì)象,而是這個(gè)實(shí)現(xiàn)類中的getObject()方法返回的對(duì)象。要想獲取FactoryBean的實(shí)現(xiàn)類,就要getBean(&BeanName),在BeanName之前加上&。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容