欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝

系統(tǒng) 1912 0

?Spring BeanFactory提供了類似pico container中自動(dòng)裝配組件依賴的對(duì)象的功能。自動(dòng)裝配能應(yīng)用在每個(gè)組件上,可以為一些組件定義自動(dòng)裝配,而另一些組件則不使用。

??? 使用”autowire”屬性可以設(shè)置自動(dòng)裝配,autowire有五種模式:
??? no
??? 默認(rèn)屬性,不進(jìn)行自動(dòng)裝配。
??? byName
??? 通過(guò)bean的屬性名稱自動(dòng)裝配合作者。

SHAPE \* MERGEFORMAT

?

?

按照bean 定義的名稱自動(dòng)裝配

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝配)

?

??? Spring用bean 中set方法名和BeanFactory中定義的合作者的名稱做匹配,一但2者匹配,Sping就會(huì)把合作者進(jìn)行注入。
可以使用id屬性也可以使用name屬性定義合作者的名稱,這2個(gè)屬性在Spring進(jìn)行自動(dòng)裝配時(shí)沒有區(qū)別。
當(dāng)有多個(gè)名稱相同的合作者在Spring中定義時(shí),Srping在自動(dòng)裝配時(shí)選擇最后一個(gè)定義的合作者注入。

SHAPE \* MERGEFORMAT

?

這個(gè)Bean 將被注入到dao

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝配)

?

??? 在多個(gè)合作者名稱相同進(jìn)行自動(dòng)裝配時(shí),合作者的id屬性并不會(huì)比name屬性優(yōu)先處理。無(wú)論怎樣定義Spring總會(huì)把最后一個(gè)定義的合作者注入。
byType
??? 通過(guò)bean set方法中參數(shù)的類型和BeanFactory中定義合作者的類型做匹配,Spring會(huì)找到匹配的合作者進(jìn)行注入。

SHAPE \* MERGEFORMAT

?

?

按照bean 定義的類型自動(dòng)裝配

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝配)

?

??? 在byType自動(dòng)裝配模式中,Spring不關(guān)心合作者的名稱,只關(guān)心合作者的類型是否滿足條件。
類似上面介紹的byName的方式,在byType方式中, 當(dāng)具有相同名稱并且有相同類型的多個(gè)合作者 被找到時(shí),Spring會(huì)注入最后一個(gè)定義的合作者。

SHAPE \* MERGEFORMAT

?

這個(gè)Bean 將被注入到dao

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝配)

?

在byType裝配時(shí),如果有2個(gè)不同名稱但是類型相同的合作者被找到,那么Spring會(huì)拋出一個(gè)依賴異常。

SHAPE \* MERGEFORMAT

?

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝配)

?

拋出依賴異常,通知用戶在byType方式中同樣類型的Bean只能定義一個(gè)。

org.springframework.beans.factory.UnsatisfiedDependencyException : Error creating bean with name 'dao' defined in class path resource [research/spring/beanfactory/ch3/context.xml]: Unsatisfied dependency expressed through bean property 'database': There are 2 beans of type [class research.spring.beanfactory.ch3.Database] for autowire by type. There should have been 1 to be able to autowire property 'database' of bean 'dao'...

constructor

constructor其實(shí)時(shí)按byType的方式進(jìn)行構(gòu)造函數(shù)的注入。

?

SHAPE \* MERGEFORMAT

?

?

按照bean 定義的類型自動(dòng)裝配

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝配) ???? ??

??? constructor裝配方式不關(guān)心構(gòu)造參數(shù)的順序,無(wú)論構(gòu)造函數(shù)參數(shù)的順序如何Spring都會(huì)按類型匹配到正確的合作者進(jìn)行注入。

?

??? 在byType方式中,當(dāng)沒有找到類型相同的合作者時(shí)Spring什么都不會(huì)去做。但是在constructor方式中,當(dāng)沒有找到和Bean構(gòu)造函數(shù)中參數(shù)類型相匹配的合作者時(shí),Spring會(huì)拋出異常。
??? Spring在進(jìn)行constructor方式的自動(dòng)裝配時(shí),強(qiáng)制要求所有的構(gòu)造函數(shù)中所有的合作者都必須存在。
autodetect
??? 在autodetect的方式中,Spring檢查一個(gè)Bean內(nèi)部是否有默認(rèn)的構(gòu)造函數(shù)。如果有默認(rèn)的參數(shù)Spring就使用byType的方式進(jìn)行自動(dòng)裝配。如果沒有默認(rèn)的構(gòu)造函數(shù)Spring則使用constructor的方式進(jìn)行自動(dòng)裝配。
如果一個(gè)Bean同時(shí)定義了默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù),Spring仍會(huì)使用byType的方式進(jìn)行裝配。
?
?
??? 不管使用上述哪種裝配方式,都可以在Bean中顯示的定義合作者。顯示定義的依賴關(guān)系優(yōu)先級(jí)比自動(dòng)裝配高。
自動(dòng)裝配的功能可以和自動(dòng)依賴檢查一起使用。Spring會(huì)首先進(jìn)行自動(dòng)裝配,然后在進(jìn)行依賴檢查。
自動(dòng)裝配提供了簡(jiǎn)化配置的可能性,但是我并不建議在項(xiàng)目中大量的使用自動(dòng)裝配,特別時(shí)byType方式。因?yàn)樽詣?dòng)裝配,尤其時(shí)byType方式,破壞了Bean和合作者之間顯示的依賴關(guān)系,所有的依賴關(guān)系都時(shí)不明顯的。在使用自動(dòng)裝配后我們的依賴關(guān)系需要到源代碼中才能看到,這使得維護(hù)或文檔化Bean的依賴關(guān)系變得很困難。

適當(dāng)?shù)氖褂米詣?dòng)裝配比如byName方式的裝配,是有一些好處的。比如我們?cè)谝恍┨囟ǖ姆秶锟梢越柚鷅yName自動(dòng)裝配的功能來(lái)實(shí)現(xiàn)“ 以慣例來(lái)代替配置 ”的框架。

Spring內(nèi)核研究-管理bean之間的關(guān)系三(自動(dòng)裝配)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 免费观看成人毛片A片2008 | 成人国产免费视频 | av在线电影网站 | 国产高清在线精品一区二区三区 | 日韩精品视频一区二区三区 | 成人福利视频网 | 欧美一级视频在线观看欧美 | 欧美一区视频 | 色综合综合在线 | 国产精品免费久久久免费 | 亚洲美女亚洲精品久久久久 | 日本香港三级和澳门三级 | 午夜电影合集 | 91网页视频入口在线观看 | 免费乱理伦片在线观看八戒 | 成人自拍在线 | 黄网在线| 久草色视频 | 国产高清片 | 亚洲国产高清高潮精品美女 | 成人在线精品视频 | 婷婷久久综合网 | 5060网午夜| 特黄特黄的视频 | 免费人成网ww44kk44 | 美女国产网站 | 日韩视频在线一区 | 奇米影视四色7777 | 日本在线视 | 今井夏帆av一区二区 | 国产成人精品视频播放 | 天天拍天天干天天操 | 欧美 中文字幕 | 久久极品 | 亚洲线精品一区二区三区 | 日韩精品中文字幕久久 | 国产色| 日韩伦理电影免费观看 | 色色成人网 | 精品久久久久久国产 | 午夜a狂野欧美一区二区 |