在这个教程中,你将学习什么是 Spring 依赖注入,它是如何工作的,以及如何使用它。

什么是依赖注入?

依赖注入是您必须了解的Spring基础知识之一。

当您创建一个复杂的应用程序时,很可能会有不同的对象一起工作。 理想情况下,您希望这些对象彼此独立。 这个设计原则是控制反转的,它强调 Java 类是相互独立的,然后容器会将其从对象创建和维护中解放出来。 如果您不熟悉 IoC,我强烈建议您阅读这篇关于IoC的文章。

思考一下您将如何按照传统方法创建对象依赖关系。您将必须创建对象类型的实例变量,然后使用构造函数和setter方法。就像这样:

public class Employee{
	private Company company;
	
	public Employee() {
		company = new Company();
	}
}

但是,当我们使用依赖注入时,它看起来就像这样:

public class Employee{
	private Company company;
	
	public Employee(Company company) {
		this.company= company;
	}
}

你能明白为什么第二个例子更好吗? 因为现在 Employee 不需要担心company的实现,它将独立于 Employee 实现,并且将通过构造函数提供。

依赖项(company)通过构造函数注入到 Employee 类中。

依赖注入有两种类型:

  1. 构造器注入
  2. 基于Setter的依赖注入

让我们看看如何使用setter方法实现依赖注入。

基于Setter的依赖注入

当使用基于setter的注入时,容器将在调用无参数构造函数或方法实例化bean之后调用该类的setter方法。如果您不熟悉Spring中的bean,可以阅读我之前的文章。

这是基于setter的依赖注入的实现方式:

@Bean
public void setCompany(Company company) {
   this.company = company;
}

至于使用哪种类型,通常建议对强制性依赖项使用构造函数注入,对可选性依赖项使用setter注入。

多亏了 依赖注入,现在 Employee 类不需要查找 Company,也不知道它的位置和类。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐