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确实能让代码清爽一点。
|