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


