你能够自由使用任何标准Spring框架技术来定义bean及其注入的依赖项,为了简单起见,咱们常常发现使用@ComponentScan
(找到你的bean)和使用@Autowired
(进行构造函数注入)工做得很好。spring
若是按照上面建议的方式构造代码(在根包中定位应用程序类),能够不带任何参数添加@ComponentScan
,全部应用程序组件(@Component
、@Service
、@Repository
、@Controller
等)都自动注册为Spring bean。segmentfault
下面的示例显示了一个@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; } // ... }
注意,如何使用构造函数注入使riskAssessor
字段被标记为final
,表示它不能随后更改。