Spring Beans和依赖注入

时间:2021-07-26 00:31:54

您可以*地使用任何标准的Spring框架技术来定义您的bean及其注入的依赖项。为简单起见,我们经常发现使用@ComponentScan(找到您的bean)和使用@Autowired(做构造函数注入)工作得很好。

如果您按照上面建议的方式构造您的代码(在根包中定位您的应用程序类),您可以添加@ComponentScan,而无需任何参数。您的所有应用程序组件(@Component、@Service、@Repository、@Controller等等)都将自动注册为Spring 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;
} // ... }
请注意,使用构造器注入需让riskAssessor字段被标记为final,表明它不能被随后更改。