@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 Spring
【Java用法】Spring之@Nullable和@NotNull注释的使用
【Java用法】Spring之@Nullable和@NotNull注释的使用
835 0
|
Java 开发者 Spring
【SpringBoot 异步魔法】@Async 注解:揭秘 SpringBoot 中异步方法的终极奥秘!
【8月更文挑战第25天】异步编程对于提升软件应用的性能至关重要,尤其是在高并发环境下。Spring Boot 通过 `@Async` 注解简化了异步方法的实现。本文详细介绍了 `@Async` 的基本用法及配置步骤,并提供了示例代码展示如何在 Spring Boot 项目中创建与管理异步任务,包括自定义线程池、使用 `CompletableFuture` 处理结果及异常情况,帮助开发者更好地理解和运用这一关键特性。
2621 1
|
程序员
【工具使用】Intellij IDEA 自动清除无效 import 包 和 清除无效 import包 的快捷键
【工具使用】Intellij IDEA 自动清除无效 import 包 和 清除无效 import包 的快捷键
5273 0
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
34142 1
@RequiredArgsConstructor(onConstructor=@_(@Autowired))是什么语法?
@RequiredArgsConstructor(onConstructor=@_(@Autowired))是什么语法?
612 0
|
设计模式 Java 关系型数据库
【阿里规约】阿里开发手册解读——命名规范篇
本文中所有代码命名规范遵循《阿里规约》,从包名、类名、变量名等角度展开,详细阐述测试类、枚举类、数组、布尔型变量、方法等元素的命名规范。
【阿里规约】阿里开发手册解读——命名规范篇
|
Java Spring
No qualifying bean of type 'XXXXX' available
该文档描述了Spring框架中`org.springframework.beans.factory.NoSuchBeanDefinitionException`异常的处理方法,该异常是因为无法找到类型为`com.weblog.auth.mapper.UserMapper`的bean导致。解决办法包括在对应的Mapper上添加`@Mapper`注解,并在启动类上添加`@MapperScan`注解以扫描包含Mapper接口的文件夹。
1357 8
|
IDE Java 编译器
lombok编译遇到“找不到符号的问题”
【9月更文挑战第18天】当使用 Lombok 遇到 “找不到符号” 的问题时,可能是由于 Lombok 未正确安装、编译器不支持、IDE 配置不当或项目构建工具配置错误。解决方法包括确认 Lombok 安装、编译器支持,配置 IDE 和检查构建工具配置。通过这些步骤通常可解决问题,若问题仍存在,建议检查项目配置和依赖,或查看日志获取更多信息。
6424 2
|
XML 安全 IDE
springboot @RequiredArgsConstructor的概念与使用
【4月更文挑战第25天】在Spring Boot中,@RequiredArgsConstructor注解是Lombok库提供的功能,用于自动生成包含必需参数的构造函数。"必需参数"指的是那些被声明为final或者有@NonNull注解的成员变量。这种注解极大地简化了Java类的编写,尤其是在需要注入依赖或常量值时
832 3