lombok用了很长一段时间了,但是基本就是是只有使用@Data @Setter和@Getter这些现在都没怎么营养的东西,也没有去认真去看Lombok的文档,最近看到一个@AllArgsConstructor注解很新奇。

Lombok的文档地址:
Lombok官方文档

首先我们拦一下它的定义:
在这里插入图片描述

@AllArgsConstructor generates a constructor with 1 parameter for each field in your class.

说人话,就是用这个注解修饰的类会把里面的变量都生成全参数的构造器(那么问题来了,有全参数的构造器参数,那有没有没有参数的构造器的参数注解吗?这就是@NoArgsConstructor)

那还是有点疑问,我用它来给我生成参数构造器,有啥用看一下这个代码加了@AllArgsConstructori前后的变化

@Component
@Slf4j
public class EmployeeSyncSupport {
    @Autowired
    private AccountSupport accountSupport;
   @Autowired
    private EmployeeMapper employeeMapper;
   @Autowired
    private EmployeeSupport employeeSupport;


}
@Component
@Slf4j
@AllArgsConstructor
public class EmployeeSyncSupport {

    private AccountSupport accountSupport;

    private EmployeeMapper employeeMapper;

    private EmployeeSupport employeeSupport;


}

是不是清爽了不少,@Autowired的默认装配,自动装配对象的,实际上也可以理解为我们装配一个构造器进来,正好和@AllArgsConstructor作用对应起来,但是要考虑一个问题,如果你类里面有@Value这些可能会,项目启动会报错,大概意思就是你这个@Autowired搞多了有点重复,实际问题就有可能是出在@AllArgsConstructor上面,我一般来说比较喜欢单个装配@Autowired但是你这个类没有其他的乱七八糟的注解什么的@AllArgsConstructor确实能让代码清爽一点。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐