SpringBoot通过构造函数依赖注入实现过程
作者:RR1335
Spring Boot推荐构造函数注入替代@Autowired,避免编辑器警告,使用@AllArgsConstructor生成全属性构造函数,但通过final关键字可优化,仅生成需注入字段的构造函数,减少冗余
SpringBoot通过构造函数依赖注入
对于注入,通常通过 @Autowired 关键字。
@Service
public class CartServiceImpl implements ICartService {
@Autowired
private RestTemplate restTemplate;但是,这个方式 Spring Boot 并不推荐。

编辑器会提示一个波浪线;能看到提示就是构造函数的方式实现。

通过构造函数,进行依赖注入
@RestController
public class PayController {
private IPayOrderService payOrderService;
public PayController(IPayOrderService payOrderService) {
}
/*
需要的构造函数多了;就会很长的「代码」负担
*/当然这个问题通过一个注解, @AllArgsConstructor 解决。
这样会将所有的 「属性」 都定义 「构造函数」;太浪费了。
通过 /* final */ 关键字和 配合,完成仅对定义了 final 关键字的属性生成构造函数。
代码如下:
@RestController
@RequiredArgsConstructor
public class PayController {
private final IPayOrderService payOrderService;最开始的代码就变成了
@Service
@RequiredArgsConstructor
public class CartServiceImpl implements ICartService {
private final RestTemplate restTemplate;总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
