Spring Boot中文手册(6):Spring Beans和依赖注入

“ 该系列的文章主要参考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
在这里插入图片描述