# 注解 @RequiredArgsConstructor 详解
作用:忽略某些字段生成构造器
Lombok 提供的 @RequiredArgsConstructor 方式(会生成一个包含常量,和标识了 NotNull 的变量的构造方法)
在 springboot 项目中,controller 或 service 层中需要注入多个 mapper 接口或者另外的 service 接口,这时候代码中就会有多个 @AutoWired 注解,使得代码看起来什么的混乱。
lombok 提供了一个注解:
@RequiredArgsConstructor(onConstructor =@_(@Autowired))
写在类上面可以代替 @AutoWired 注解,需要注意的是:在注入的时候需要用 final 定义,或者使用 @notnull 注解
# 1. 注解注入:
| Controller |
| public class FooController { |
| @Autowired |
| |
| private FooService fooService; |
| |
| public List<Foo> listFoo() { |
| return fooService.list(); |
| } |
| } |
# 2. 构造器注入:
| Controller |
| |
| public class FooController { |
| private final FooService fooService; |
| @Autowired |
| public FooController(FooService fooService) { |
| this.fooService = fooService; |
| } |
| |
| } |
# 3.setter 注入:
| @Controller |
| public class FooController { |
| private FooService fooService; |
| |
| @Autowired |
| public void setFooService(FooService fooService) { |
| this.fooService = fooService; |
| } |
| } |
# 4. 最后就是 lombok 中的 @RequiredArgsConstructor
| @RequiredArgsConstructor |
| public class VerifyController { |
| private final VerifyService verifyService; |
| private final InvitationService invitationService; |
| private final VerificationCodeService verificationCodeService; |
| } |