在 Spring 中,属性注入和依赖注入(Dependency Injection)是非常重要的概念。属性注入用于将一个对象的属性或字段设置为特定的值或引用,而依赖注入则是将一个对象所依赖的其他对象传递进来。
属性注入
构造器注入
使用构造器方法可以将其中需要注入的属性或者依赖对象作为参数,Spring 负责实例化 Bean 并将其传入:
public class ExampleBean {
private final int years;
private final String ultimateAnswer;
private final ExampleDependency exampleDependency;
public ExampleBean(int years, String ultimateAnswer, ExampleDependency exampleDependency) {
this.years = years;
this.ultimateAnswer = ultimateAnswer;
this.exampleDependency = exampleDependency;
}
}
Setter 方法注入
如下所示,可以使用 Setter 方法的名称将需要注入的属性或依赖对象命名,Spring 会调用这些 Setter 方法并传入指定的值或对象: public class ExampleBean {
private int years;
private String ultimateAnswer;
private ExampleDependency exampleDependency;
public void setYears(int years) {
this.years = years;
}
public void setUltimateAnswer(String ultimateAnswer) {
this.ultimateAnswer = ultimateAnswer;
}
public void setExampleDependency(ExampleDependency exampleDependency) {
this.exampleDependency = exampleDependency;
}
}
字段注入
还可以直接将属性或依赖对象标记为自动装配(Autowired),使 Spring 基于类型或名称自动设置:
public class ExampleBean { @Autowired private ExampleDependency exampleDependency;
private int years;
private String ultimateAnswer;
}