您好,登錄后才能下訂單哦!
這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹Spring實(shí)現(xiàn)依賴注入的方法,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
總得來(lái)說(shuō),Spring中依賴注入有這么三種方式:
①通過(guò)set方式賦值
②通過(guò)構(gòu)造器賦值
③通過(guò)p標(biāo)簽賦值
下面我們稍稍展開來(lái)談:
1.通過(guò)set方式賦值
<bean id="teacher" class="org.szh.entity.Teacher" p:age="24" p:name="lq"> <property name="name" value="zs"></property> <property name="age" value="23"></property> </bean>
主要用到<property></property>圍堵標(biāo)簽來(lái)傳遞值
此處的name就是Teacher類里聲明的變量名,value就是你要給這個(gè)變量賦什么值。
Teacher類:
public class Teacher { private String name; private int age; public Teacher() { } public Teacher(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
2.通過(guò)構(gòu)造器賦值
<bean id="teacher" class="org.szh.entity.Teacher"> <constructor-arg value="zs" ></constructor-arg> <constructor-arg value="24" ></constructor-arg> </bean>
注意上面的Teacher類中要有對(duì)應(yīng)的構(gòu)造方法。
如果構(gòu)造方法中的參數(shù)列表的值很多的話,我們一一對(duì)應(yīng)去寫就很累,此時(shí)有如下幾種方式來(lái)幫助我們精準(zhǔn)地給變量賦值:
1.用index(下標(biāo)值)
2.name(聲明變量的名稱)
3.type(聲明變量的類型)//需要構(gòu)造器中參數(shù)列表聲明的類型不一致
來(lái)傳遞value值都可以
具體格式如下即可:
<constructor-arg value="zs" 你要用來(lái)做辨認(rèn)的屬性(index/name/type)="..."></constructor-arg> <constructor-arg value="24" 你要用來(lái)做辨認(rèn)的屬性(index/name/type)="..."></constructor-arg>
此處還有一個(gè)需要注意的點(diǎn):如果你要在標(biāo)簽內(nèi)傳遞引用類型的話,就不能用value了,得用ref:
<constructor-arg ref="teacher"></constructor-arg>
3.通過(guò)p標(biāo)簽賦值
這邊需要注意下,如果你的編譯器沒有安裝sts的話,就要在你的applicationContext.xml的配置聲明里加上這樣一句話:
xmlns:p="http://www.springframework.org/schema/p"
如果安裝過(guò)sts,那么在Namespaces里直接勾選即可:
具體寫法如下:
<bean id="teacher" class="org.szh.entity.Teacher" p:age="24" p:name="lq"> </bean>
只需要在標(biāo)簽內(nèi)加上p:xxx="xxx"即可。
關(guān)于Spring實(shí)現(xiàn)依賴注入的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。