Spring Beans和依赖注入
您可以自由地使用任何标准的Spring Framework技术来定义Bean及其注入的依赖项。为简单起见,我们经常发现使用 @ComponentScan
(自动扫描来找到你的Bean)和@Autowired(做构造函数注入)配合效果很好。
如果按照上面的建议构建代码(在根包中定位应用程序类),则可以添加不带任何参数的代码@ComponentScan
即可。您的所有应用程序组件(@Component,@Service,@Repository,@Controller
等)都将自动被扫描并注册为Bean 。
以下示例显示了一个@Service使用构造函数注入来获取所需RiskAssessorbean的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;
}
// ...
}
网友评论