作者: | 来源:互联网 | 2023-08-16 21:50
“该系列的文章主要参考SpringBoot的官方文档来进行翻译,逐步将官方文档翻译过来,方便大家共同学习和讨论,但是毕竟能力有限,如有问题,感谢大家留言指正。”你可以***地使用任
“ 该系列的文章主要参考Spring Boot的官方文档来进行翻译,逐步将官方文档翻译过来,方便大家共同学习和讨论,但是毕竟能力有限,如有问题,感谢大家留言指正。”
你可以***地使用任何标准的Spring框架技术来定义你的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;
}
// ...
}
注意上面是如何使用构造器注意的方式来将riskAssessor标记为final,这表明在后续的操作中riskAssessor是不能被改变的。
END