Spring中自動(dòng)裝配的4種方式
Spring容器可以在不使用<constructor-arg>
和<property>
元素的情況下自動(dòng)裝配相互協(xié)作的bean之間的關(guān)系,助于減少編寫一個(gè)大的基于Spring的應(yīng)用程序的XML配置的數(shù)量使用<bean>
元素的autowire屬性為一個(gè)bean定義指定自動(dòng)裝配模式。
在Spring中,我們有4種方式可以裝配Bean的屬性。
1,byName
通過byName方式自動(dòng)裝配屬性時(shí),是在定義Bean的時(shí)候,在property標(biāo)簽中設(shè)置autowire屬性為byName,那么Spring會(huì)自動(dòng)尋找一個(gè)與該屬性名稱相同或id相同的Bean,注入進(jìn)來。
2,byType
通過byType方式自動(dòng)注入屬性時(shí),是在定義Bean的時(shí)候,在property標(biāo)簽中設(shè)置autowire屬性為byType,那么Spring會(huì)自動(dòng)尋找一個(gè)與該屬性類型相同的Bean,注入進(jìn)來。
3,constructor
通過構(gòu)造器自動(dòng)注入。在定義Bean時(shí),在bean標(biāo)簽中,設(shè)置autowire屬性為constructor,那么,Spring會(huì)尋找與該Bean的構(gòu)造函數(shù)各個(gè)參數(shù)類型相匹配的Bean,通過構(gòu)造函數(shù)注入進(jìn)來。
4,autodetect
自動(dòng)裝配。如果想進(jìn)行自動(dòng)裝配,但不知道使用哪種類型的自動(dòng)裝配,那么就可以使用autodetect,讓容器自己決定。這是通過在定義Bean時(shí),設(shè)置bean標(biāo)簽的autowire屬性為autodetect來實(shí)現(xiàn)的。設(shè)置為autodetect時(shí),Spring容器會(huì)首先嘗試構(gòu)造器注入,然后嘗試按類型注入。
默認(rèn)情況下,Spring是不進(jìn)行自動(dòng)裝配的。我們可以在xml中,設(shè)置beans標(biāo)簽的default-autowire屬性為byName,byType等,來設(shè)置所有bean都進(jìn)行自動(dòng)裝配。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Idea 搭建Spring源碼環(huán)境的超詳細(xì)教程
這篇文章主要介紹了Idea 搭建Spring源碼環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10Spring?Boot多個(gè)定時(shí)任務(wù)阻塞問題的解決方法
在日常的項(xiàng)目開發(fā)中,往往會(huì)涉及到一些需要做到定時(shí)執(zhí)行的代碼,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot多個(gè)定時(shí)任務(wù)阻塞問題的解決方法,需要的朋友可以參考下2022-01-01Struts 2 實(shí)現(xiàn)Action的幾種方式
本篇文章主要介紹了Struts 2 實(shí)現(xiàn)Action的幾種方式,Struts 2框架下實(shí)現(xiàn)Action類有三種方式,有興趣的可以了解一下2017-10-10