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