SpringBoot通过构造函数依赖注入实现过程

 更新时间:2025年08月17日 11:51:04   作者: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;

总结

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

相关文章

  • Java中ArrayList和LinkedList的区别

    Java中ArrayList和LinkedList的区别

    ArrayList和LinkedList在这个方法上存在一定的性能差异,本文就介绍了Java中ArrayList和LinkedList的区别,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • JavaSE实现图书管理系统的示例代码

    JavaSE实现图书管理系统的示例代码

    这篇博客是在学习了一部分Java基础语法之后的练习项目,通过这个小项目的练习,对Java中的类和对象,抽象类和接口等进行熟悉理解。快跟随小编一起学习学习吧
    2022-08-08
  • java8升级到java17的兼容性分析与迁移指南

    java8升级到java17的兼容性分析与迁移指南

    这篇文章主要为大家详细介绍了从 Java 8 升级到 Java 17 的详细分析和迁移步骤,包括代码修改建议,依赖更新和配置调整,有需要的小伙伴可以参考一下
    2025-04-04
  • Spring 缓存在项目中的使用详解

    Spring 缓存在项目中的使用详解

    Spring 缓存机制,Cache接口为缓存的组件规范定义,包扩缓存的各种操作(添加缓存、删除缓存、修改缓存等),本文给大家介绍Spring 缓存在项目中的使用,感兴趣的朋友一起看看吧
    2025-05-05
  • Java中流(Stream)、文件(File)和IO示例详解

    Java中流(Stream)、文件(File)和IO示例详解

    Java的流、文件和IO库为Java应用程序提供了强大且灵活的数据处理能力,这篇文章主要介绍了Java中流(Stream)、文件(File)和IO的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-09-09
  • Java存储数据至Rredis之@RedisHash实现过程

    Java存储数据至Rredis之@RedisHash实现过程

    文章介绍了在项目启动时通过@RedisHash注解,将Java对象映射为Redis中的Hash结构,实现数据的自动加载与管理,具体步骤包括引入依赖、创建实体类、实现Repository,并完成增删查改操作
    2025-10-10
  • Java如何利用Mybatis进行数据权限控制详解

    Java如何利用Mybatis进行数据权限控制详解

    这篇文章主要介绍了Java如何利用Mybatis进行数据权限控制详解,数据权限控制最终的效果是会要求在同一个数据请求方法中,根据不同的权限返回不同的数据集,而且无需并且不能由研发编码控制。,需要的朋友可以参考下
    2019-06-06
  • Java中的RabbitMQ使用场景和实践完全指南

    Java中的RabbitMQ使用场景和实践完全指南

    本文涵盖了RabbitMQ在Java中的主要使用场景和实践方法,在实际应用中,还需要根据具体的业务需求和系统架构进行适当的调整和优化,本文结合代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • Java Scanner输入两个数组的方法

    Java Scanner输入两个数组的方法

    今天小编就为大家分享一篇Java Scanner输入两个数组的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Springboot mybatisplus如何解决分页组件IPage失效问题

    Springboot mybatisplus如何解决分页组件IPage失效问题

    这篇文章主要介绍了Springboot mybatisplus如何解决分页组件IPage失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08

最新评论