简介
spring容器本身在创建bean的时候,会自动从容器中查找 参数 类型的 bean,并将其注入到构造方法中。
例子
在 AlgcPropertiesAutoConFiguration 类中,构造方法接收一个 AlgcProperties 类型的参数。假设此时容器中已经存储在 AlgcProperties类型的bean, AlgcPropertiesAutoConFiguration 的 bean 实例时,会自动从容器中查找 AlgcProperties 类型的 bean,并将其注入到构造方法中。
java
@Component
public class AlgcPropertiesAutoConFiguration {
private AlgcProperties algcProperties;
public AlgcPropertiesAutoConFiguration(AlgcProperties algcProperties) {
this.algcProperties = algcProperties;
}
}
定义AlgcPropertiesAutoConFiguration的属性algcProperties
java
private AlgcProperties algcProperties;
通过构造方法赋值,由于这里的AlgcPropertiesAutoConFiguration类使用了@Configuration注解,会被spring容器管理,并且自动创建,所以构造方法中的algcProperties参数,会自动从spring容器中査找AlgcProperties 类型的 bean,并将其注入到构造方法中。
java
public AlgcPropertiesAutoConFiguration(AlgcProperties algcProperties) {
this.algcProperties = algcProperties;
}
如果AlgcProperties 类型的 bean有多个,那就需要使用@Qualifier注解指定具体的bean,这里指定了一个名为specificAlgcProperties的bean
java
public AlgcPropertiesAutoConFiguration(@Qualifier("specificAlgcProperties")AlgcProperties algcProperties) {
this.algcProperties = algcProperties;
}