lombok简介
lombok是是一款工具类,专门使用在POJO类上,简化编写流程。
lombok简单原理
lombok是通过以注解的方式编译时增强POJO类。java代码通过jvm解析器,生成对应的语法树,再通过JRE的注解解析器重新构建语法树,最后生成字节码。
lombok的原理和反射相似,但是lombok是编译时已经完成了,反射是运行的时候才进行,两者性能差异明显。
项目打包时不需要lombok包,因为生成的字节码中已经有lombok注解的功能。
lombok使用
- 添加maven依赖
provided是指打包时不纳入jar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
- IDEA还要添加对应的lombok插件
不添加语法编译不通过。
File->Setting->Plugins->搜索Lombok
常用注解
- @Data // 吹爆,好吗 这个直接直接帮我们生成N多个getter和setter,还有默认构造和Object那些方法
- 作用于类上,是以下注解的集合
- @ToString
- @EqualsAndHashCode
- @Getter
- @Setter
- @RequiredArgsConstructor
看看多简洁的类,却包含着大大的能量!
- @setter和@getter方法 // 如果你不想像@Data那样暴露的话,可以选择setter和getter的方法,是@Data的子集
- @Bulider // 还在实例.get 实例.set? 如果工资是以代码行来算的话,当我什么都没说。但是作为一位合格的程序员,代码的优雅是十分必要的,行数得是控制得得当,能用一行写就绝对不用两行。那么这款@Bulider注解就十分适合了。 tips:需要注意一下,@Bulider会屏蔽掉默认构造函数,使用的时候需要斟酌,别盲目使用
-
@AllArgsConstructor @NoArgsConstructor, 顾名思义,就不详细解释了。
-
@Log / @Slf4j
作用于类上,生成日志变量, 用于记录日志, 已经在web项目中添加log依赖