你可以自由的使用任何标准的Spring Framework技术来定义你得beans以及进行依赖的注入。方便起见,我们经常使用@ComponentScan(查找你得beans)和@Autowired(进行依赖注入),这两个使用起来很不错。
如果你得程序是按照上述所说的标准结构(入口类在根目录中),无需任何配置就可以使用@ComponentScan注释,这样程序的所有组件(被@Component、@Service、@Repository、@Controller等注释的类)都会自动注册为Spring Beans。
下面的例子显示了一个@Service Bean通过构造函数注入所需的RiskAssessor Bean。
package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
@Autowired
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
// ...
}
如果你注入的Bean有一个构造方法,则可以省略@Autowired注释,代码如下:
@Service
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
// ...
}
提示:
注意,当使用构造器注入依赖时,用final修饰了riskAssessor属性,这意味着它在之后不能发生改变。
总目录:总纲 Spring Boot官方文档(2.1.5版翻译)
上一篇:16.自动配置机制