Spring 自動(dòng)裝配
spring 自動(dòng)裝配
spring框架的自動(dòng)裝配功能使您可以隱式注入對(duì)象依賴項(xiàng)。它在內(nèi)部使用setter或構(gòu)造函數(shù)注入。
自動(dòng)裝配不能用于注入基本值和字符串值。它僅適用于參考。
自動(dòng)裝配的優(yōu)點(diǎn)
它需要 更少的代碼,因?yàn)槲覀儾恍枰帉懘a來顯式注入依賴項(xiàng)。
自動(dòng)裝配的缺點(diǎn)
沒有程序員的控制權(quán)。
它不能用于原始值和字符串值。
自動(dòng)裝配模式
有很多自動(dòng)裝配模式:
模式 | 說明 |
no | 這是默認(rèn)的自動(dòng)裝配模式。這意味著默認(rèn)情況下沒有自動(dòng)裝配。 |
byname | byname模式根據(jù)bean的名稱注入對(duì)象依賴項(xiàng)。在這種情況下,屬性名稱和bean名稱必須相同。它在內(nèi)部調(diào)用setter方法。 |
bytype | bytype模式根據(jù)類型注入對(duì)象依賴項(xiàng)。因此屬性名稱和bean名稱可以不同。它在內(nèi)部調(diào)用setter方法。 |
constructor | 構(gòu)造函數(shù)模式通過調(diào)用類的構(gòu)造函數(shù)來注入依賴項(xiàng)。它會(huì)調(diào)用具有大量參數(shù)的構(gòu)造函數(shù)。 |
autodetect | 從spring 3開始不推薦使用。 |
自動(dòng)裝配示例
讓我們看一下在spring使用自動(dòng)裝配的簡單代碼。您需要使用bean元素的autowire屬性來應(yīng)用自動(dòng)裝配模式。
讓我們看看spring自動(dòng)布線的完整示例。為了創(chuàng)建此示例,我們創(chuàng)建了4個(gè)文件。
- b.java
- a.java
- applicationcontext.xml
- test.java
b.java
此類僅包含構(gòu)造函數(shù)和方法。
package org.sssit; public class b { b(){system.out.println("b is created");} void print(){system.out.println("hello b");} }
a.java
此類包含b類的引用以及構(gòu)造函數(shù)和方法。
package org.sssit; public class a { b b; a(){system.out.println("a is created");} public b getb() { return b; } public void setb(b b) { this.b = b; } void print(){system.out.println("hello a");} void display(){ print(); b.print(); } }
applicationcontext.xml