java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot通过构造函数依赖注入

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;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文