Spring 自動裝配
spring 自動裝配
spring框架的自動裝配功能使您可以隱式注入對象依賴項。它在內部使用setter或構造函數注入。
自動裝配不能用于注入基本值和字符串值。它僅適用于參考。
自動裝配的優點
它需要 更少的代碼,因為我們不需要編寫代碼來顯式注入依賴項。
自動裝配的缺點
沒有程序員的控制權。
它不能用于原始值和字符串值。
自動裝配模式
有很多自動裝配模式:
模式 | 說明 |
no | 這是默認的自動裝配模式。這意味著默認情況下沒有自動裝配。 |
byname | byname模式根據bean的名稱注入對象依賴項。在這種情況下,屬性名稱和bean名稱必須相同。它在內部調用setter方法。 |
bytype | bytype模式根據類型注入對象依賴項。因此屬性名稱和bean名稱可以不同。它在內部調用setter方法。 |
constructor | 構造函數模式通過調用類的構造函數來注入依賴項。它會調用具有大量參數的構造函數。 |
autodetect | 從spring 3開始不推薦使用。 |
自動裝配示例
讓我們看一下在spring使用自動裝配的簡單代碼。您需要使用bean元素的autowire屬性來應用自動裝配模式。
讓我們看看spring自動布線的完整示例。為了創建此示例,我們創建了4個文件。
- b.java
- a.java
- applicationcontext.xml
- test.java
b.java
此類僅包含構造函數和方法。
package org.sssit; public class b { b(){system.out.println("b is created");} void print(){system.out.println("hello b");} }
a.java
此類包含b類的引用以及構造函數和方法。
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