@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,那么这个注解可能是一个有用的工具。否则,可能需要谨慎使用,以免引入不必要的复杂性。

相关文章
|
13天前
|
Java
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
|
2月前
|
Java Spring 容器
同一接口有多个实现类,怎么来注入一个指定的实现?@Resource、@Autowired、@Qualifier
同一接口有多个实现类,怎么来注入一个指定的实现?@Resource、@Autowired、@Qualifier
|
2月前
|
Java Spring
spring注解@Autowired、@Resource说明
spring注解@Autowired、@Resource说明
|
11月前
|
Java Spring
SpringBoot 中- HandlerInterceptor 中 @Autowired 和 @Resource 为空
SpringBoot 中- HandlerInterceptor 中 @Autowired 和 @Resource 为空
72 0
|
Java Spring 容器
@Inject和@Autowired的区别
@Inject和@Autowired的区别
|
开发框架 Java Spring
还在使用@Autowired 吗?并不推荐使用!
还在使用@Autowired 吗?并不推荐使用!
SpringAOP导致@Autowired依赖注入失败
SpringAOP导致@Autowired依赖注入失败
174 1
|
Java Spring 容器
为什么Spring不推荐使用@Autowired注解?
在实际工作中,使用IDEA开发时,很多码友都喜欢使用@Autowired注解进行依赖注入,这个时候 IDEA 就会报黄色警告,代码一片warning,代码洁癖的我不允许这么一个不明不白的警告在这里。@Autowired作为Spring的亲儿子,为啥在IDEA中提示了这么一个警告?所以,带着我的洁癖,和我的好奇心,开始研究起了这个警告。
1645 3
|
开发框架 Java Spring
spring注解:@Autowired 和@Resource
spring注解:@Autowired 和@Resource
291 0
|
Java Spring 容器
Spring中的Autowired、Qualifier、Resource注解详解
使用Spring系列的框架对这三个注解肯定都不会陌生,这三个注解有一个特性,就是用于属性注入,说白了点就是将Spring容器中的对象取出来,这样我们才可以使用,那么这三者到底是什么关系,又有什么区别呢?
522 0