欧美三区_成人在线免费观看视频_欧美极品少妇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)論
主站蜘蛛池模板: 久久久精品在线观看 | 国产日韩欧美在线观看 | 美女爽到呻吟久久久久 | 精品视频一区二区三区免费 | 日韩欧美中文字幕视频 | 中文字幕欧美在线 | 亚洲国产系列久久精品99人人 | 国产一级一级一级成人毛片 | 92手机看片福利永久国产 | 黄页网站免费高清在线观看 | 看全色黄大色黄大片爽一次 | 国产色网 | 国产欧美一区二区三区在线看 | 国产一区二区三区在线电影 | 欧美成人精品欧美一级乱黄 | 色呦呦免费 | 综合97| 国产精品高潮呻吟久久av黑人 | 色综合色综合 | 国产精品爽爽va在线观看网站 | www.久久久.com | 久久久无码精品亚洲日韩按摩 | 欧美成视频在线观看 | 成人性爱视频在线观看 | 亚洲天堂在线播放 | 亚洲v日韩v综合v精品v | 先锋资源中文字幕 | 成人亚洲区无码偷拍 | 精品伊人久久久大香线蕉欧美 | 免费午夜影片在线观看影院 | 两性仑乱视频 | 久久精品国产99国产 | 清纯唯美第一页 | 欧美极品在线观看 | 日本色图视频 | 人人澡人人澡人人看添欧美 | 天天天插 | 精品国产欧美一区二区 | 午夜视频网址 | 在线播放日本爽快片 | 欧美日韩视频在线 |