@RequiredArgsConstructor(onConstructor = @__(@Autowired))

简介: `@RequiredArgsConstructor(onConstructor = @__(@Autowired))` 是一个注解,通常用于在类中生成一个包含所有`final`和`@NonNull`注解的字段的构造函数,并且对这些字段进行自动注入(使用Spring框架的`@Autowired`注解)。让我们详细解释一下:1. **`@RequiredArgsConstructor` 注解:** - **作用:** Lombok 提供的注解,用于自动生成类的构造函数。 - **生成的构造函数:** 生成一个包含所有`final`字段的构造函数,同时也包括被`@NonNull`注解

@RequiredArgsConstructor(onConstructor = @__(@Autowired)) 是一个注解,通常用于在类中生成一个包含所有final和@NonNull注解的字段的构造函数,并且对这些字段进行自动注入(使用Spring框架的@Autowired注解)。让我们详细解释一下:

  1. @RequiredArgsConstructor 注解:

    • 作用: Lombok 提供的注解,用于自动生成类的构造函数。
    • 生成的构造函数: 生成一个包含所有final字段的构造函数,同时也包括被@NonNull注解修饰的字段。
  2. onConstructor = @__(@Autowired):

    • 作用: 这是 Lombok 的一种配置方式,用于在生成的构造函数上添加额外的注解,这里是@Autowired。
    • @Autowired 注解: Spring 框架的注解,用于自动装配 Bean。通过在构造函数上添加@Autowired,Spring 将会在创建该类的实例时自动注入相应的依赖。

优点:

  • 简化代码: 使用 Lombok 的@RequiredArgsConstructor可以减少手动编写构造函数的工作,使代码更加简洁。
  • 自动注入: 通过在构造函数上添加@Autowired,可以实现依赖的自动注入,提高代码的可维护性和灵活性。

缺点:

  • 依赖性: 使用 Lombok 注解使得代码更加依赖于特定的注解处理工具。如果项目中没有配置 Lombok 或者其他开发人员不熟悉 Lombok,可能会导致理解和维护的困难。
  • 灵活性: 自动生成的构造函数可能不够灵活,无法满足复杂的依赖注入需求。在某些情况下,手动编写构造函数可能更合适。

综合考虑,使用这个注解的优缺点取决于具体的项目需求和团队的开发习惯。如果简化代码和自动注入是主要优先考虑的因素,并且团队熟悉并接受 Lombok,那么这个注解可能是一个有用的工具。否则,可能需要谨慎使用,以免引入不必要的复杂性。

相关文章
|
前端开发 Java 程序员
如何在swagger2中配置header请求头等参数信息?(若不会,我便手把手教你)
如何在swagger2中配置header请求头等参数信息?(若不会,我便手把手教你)
4343 1
|
Java Android开发 p3c
Alibaba Java Coding Guidelines安装使用教程
Alibaba Java Coding Guidelines安装使用教程
14202 0
Alibaba Java Coding Guidelines安装使用教程
|
9月前
|
安全 Java API
Spring Boot 4 升级实战:从3.x到4.0的分步升级保姆级指南
Spring Boot 4.0于2025年11月发布,基于Spring Framework 7.0,实现模块化(47个轻量自动配置)、JSpecify空安全校验、原生API版本控制等重大升级。镜像减19%、启动快33%,迁移平滑,3.5.x支持至2026年11月。(239字)
6953 1
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
2280 0
|
XML 人工智能 Java
注入Java Bean的方式
本文总结了 Spring Boot 中常见的 Bean 注入方式,包括字段注入(`@Autowired`)、构造器注入(推荐)、Setter 方法注入、`@Resource` 按名称注入、`@Bean` 定义复杂 Bean、`@Value` 注入配置值、XML 配置、`ApplicationContextAware` 手动获取 Bean 以及 JSR-330 的 `@Inject`。同时分析了 Setter 注入逐渐被淡化的原因,强调构造器注入的不可变性和安全性优势,并推荐结合 Lombok 简化代码。文章还提供了按需选择注解的建议和最佳实践,帮助开发者根据场景选择合适的依赖注入方式。
1414 49
@RequiredArgsConstructor(onConstructor=@_(@Autowired))是什么语法?
@RequiredArgsConstructor(onConstructor=@_(@Autowired))是什么语法?
763 0
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
|
XML 安全 IDE
springboot @RequiredArgsConstructor的概念与使用
【4月更文挑战第25天】在Spring Boot中,@RequiredArgsConstructor注解是Lombok库提供的功能,用于自动生成包含必需参数的构造函数。"必需参数"指的是那些被声明为final或者有@NonNull注解的成员变量。这种注解极大地简化了Java类的编写,尤其是在需要注入依赖或常量值时
1175 3
|
SQL 人工智能 Java
mybatis-plus配置sql拦截器实现完整sql打印
_shigen_ 博主分享了如何在MyBatis-Plus中打印完整SQL,包括更新和查询操作。默认日志打印的SQL用?代替参数,但通过自定义`SqlInterceptor`可以显示详细信息。代码示例展示了拦截器如何替换?以显示实际参数,并计算执行时间。配置中添加拦截器以启用此功能。文章提到了分页查询时的限制,以及对AI在编程辅助方面的思考。
3658 5
mybatis-plus配置sql拦截器实现完整sql打印
|
SQL Java 关系型数据库
SpringBoot 系列之 MyBatis输出SQL日志
这篇文章介绍了如何在SpringBoot项目中通过MyBatis配置输出SQL日志,具体方法是在`application.yml`或`application.properties`中设置MyBatis的日志实现为`org.apache.ibatis.logging.stdout.StdOutImpl`来直接在控制台打印SQL日志。
SpringBoot 系列之 MyBatis输出SQL日志