第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

FactoryBean與BeanFactory有什么卻別?

FactoryBean與BeanFactory有什么卻別?

收到一只叮咚 2019-03-21 18:15:47
Spring中有兩種類型的Bean,一種是普通Bean,另一種是工廠Bean,即FactoryBean,這兩種Bean都被容器管理,但工廠Bean跟普通Bean不同,其返回的對(duì)象不是指定類的一個(gè)實(shí)例,其返回的是該FactoryBean的getObject方法所返回的對(duì)象。那么,F(xiàn)actoryBean與BeanFactory有什么卻別?
查看完整描述

4 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

BeanFactory是個(gè) Factory ,也就是對(duì)象工廠, FactoryBean 是個(gè) Bean 。


查看完整回答
反對(duì) 回復(fù) 2019-04-22
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

BeanFactory:實(shí)現(xiàn)這個(gè)接口的對(duì)象它們可以作為它們自己的工廠(這個(gè)根接口,用來訪問spring容器),其實(shí)spring可以成為容器很大一部分是依賴這個(gè)接口

FactoryBean:如果某個(gè)對(duì)象實(shí)現(xiàn)了這個(gè)接口,這個(gè)對(duì)象會(huì)被當(dāng)做一個(gè)工廠(為了讓某個(gè)對(duì)象暴露),而不是直接以一個(gè)對(duì)象暴露自己。
以上為英文渣翻譯。
說說我的理解:
之前沒有研究過這兩個(gè)對(duì)象的區(qū)別,剛剛看了一下源碼的翻譯和一些類的實(shí)現(xiàn),發(fā)現(xiàn)挺有意思的。
首先BeanFactory,需要知道對(duì)象的一系列屬性(通過XML配置),然后再構(gòu)造對(duì)象,并對(duì)對(duì)象進(jìn)行管理,如對(duì)象的生命周期,是否單例,以及復(fù)合對(duì)象(對(duì)象有其他對(duì)象的引用)的組裝(自動(dòng)裝配),對(duì)象初始化的一些準(zhǔn)備工作,屬性注入等等,能說一堆。可以說BeanFactory更像一個(gè)公司,而不像是FactoryBean,這個(gè)對(duì)象更像一個(gè)工廠,是專門生產(chǎn)某一類對(duì)象,幾乎沒有管理功能,只是單一的構(gòu)造對(duì)象而已。


查看完整回答
反對(duì) 回復(fù) 2019-04-22
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

一個(gè)是bean的factory,一個(gè)是bean


查看完整回答
反對(duì) 回復(fù) 2019-04-22
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

BeanFactory是IOC容器,本身并不創(chuàng)建Bean,而是通過一系列組件的配合管理Bean。主要的方法是getBean,從容器中獲取Bean的實(shí)例。
FactoryBean是創(chuàng)建Bean的工廠,它們都實(shí)現(xiàn)了FactoryBean接口,主要的方法是getObject,該方法返回的是FactoryBean想要?jiǎng)?chuàng)建的class的實(shí)例,而不是FactoryBean自己的實(shí)例。在Spring中有超過50+的FactoryBean。這些FactoryBean的作用是不同的。
之一是:通過FactoryBean創(chuàng)建指定class的實(shí)例,并是該實(shí)例得到能力的增強(qiáng)。例如:TransactionProxyFactoryBean就是讓普通的Service具有了事務(wù)的能力。它的getObject返回的是普通的Service的實(shí)例,但是通過動(dòng)態(tài)代理的方式對(duì)普通Service的實(shí)例進(jìn)行了事務(wù)能力的增強(qiáng)。
之一是:某些Bean在特定場景下的實(shí)例化過程比較復(fù)雜,那么將這些實(shí)例化過程通過FactoryBean的方式進(jìn)行封裝,就能夠快速的制造出該場景下的目標(biāo)對(duì)象的實(shí)例。如:EhCacheFactoryBean。

所以一個(gè)最核心的功能是管理Bean的IOC容器,一個(gè)是某類Bean的生產(chǎn)工廠。所以更多的時(shí)候,我們理解ApplicationContext接口和FactoryBean接口的作用就很容易理解了。


查看完整回答
反對(duì) 回復(fù) 2019-04-22
  • 4 回答
  • 0 關(guān)注
  • 1353 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)