Java中的@RequiredArgsConstructor注解详解

 更新时间:2024年01月17日 09:52:17   作者:java-zh  
这篇文章主要介绍了Java中的@RequiredArgsConstructor注解详解,@RequiredArgsConstructor是Lombok的一个注解,简化了我们对@Autowired书写,@RequiredArgsConstructor注解可以代替@Autowired注解,需要的朋友可以参考下

一、什么是@RequiredArgsConstructor?

@RequiredArgsConstructor是Lombok的一个注解,简化了我们对@Autowired书写,我们在写Controller层或者Service层的时候,总是需要注入很多mapper接口或者service接口,如果每个接口都写上@Autowired,这样看起来就会很繁琐,@RequiredArgsConstructor注解可以代替@Autowired注解

二、@RequiredArgsConstructor怎么使用?

导包

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.22</version>
</dependency>

使用

将@RequiredArgsConstructor写在类上面

 注意点

1、声明的变量必须加上final修饰

2、基于构造方法为属性赋值,容器通过调用类的构造方法将其进行依赖注入

三、@AllArgsConstructor和@RequiredArgsConstructor区别

  • @AllArgsConstructor 生成一个包含所有字段的构造方法,如果使用了@Value注入,@Value注入会失效,原因时因为@Value注解是通过对象的set方法赋值的,构造方法的执行还在set方法之前,所以在构造方法中使用变量会变量为null。
  • @RequiredArgsConstructor会将类的每一个final字段或者non-null字段生成一个构造方法

总结

@AllArgsConstructor和@RequiredArgsConstructor都可以用来替代@Autowired写法,区别在于@RequiredArgsConstructor必须要有final修饰,如果有@Value注解,@RequiredArgsConstructor修饰可以成功注入,@AllArgsConstructor修饰会注入失败

到此这篇关于Java中的@RequiredArgsConstructor注解详解的文章就介绍到这了,更多相关@RequiredArgsConstructor注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论