Lombok提供了简单的注解能够帮我们简化 java 代码
- 使用背景
对应数据库生成相应的pojo类时我们需要Alt + Insert来手动实现Getter and Setter方法,但是当我们对应实体类的变量名或修饰符发生改变时,我们每次都需要先删除原有的Getter and Setter方法然后重新生成,特别麻烦。这时使用Lombok即可简单地解决这一步骤。 - 插件安装
打开idea开发工具在顶部工具栏寻找到File -> Settings -> Piugins -> Marketplace 直接在搜索框输入lombok即可直接Install安装
- 依赖添加
在maven管理的依赖中直接添加Lombok依赖即可
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
</dependency>
这里我遇过了一点小情况,就是在新建spring项目的时候在pom文件中导入依赖会出现无法读取的问题,点击也能看到maven下没有加入新的jar包
根据百度提供的解决方法,在右侧maven中的Lifecycle点击clean后重新install发现并没有用,我的解决方法是找到maven管理的jar包目录(一般都在.m2文件下),我的电脑是
C:\Users\LENOVO.m2\repository\org\projectlombok\lombok
进入对应的文件夹删除掉导入失败的lastUpdated文件
把错误的文件删除掉后回到idea右侧的maven,点击Lifecycle,clean->install(如果不是install的话试一下verify,我也忘记我当时点击的是哪个了),这时候能发现相关的jar包已经被导入,实体类中也能够使用相关的@Data注解了,只是我电脑上工具还会误报一些插件的错误,重启idea即可解决
- 使用方法
在生成有关实体类后在类名上方加入相关Lombok注解即可
/**
* 通用ID参数
*/
@ApiModel
@Data
public class IdDTO extends PageDTO implements Serializable {
@ApiModelProperty(value = "ID", example = "ID")
private String id;
@ApiModelProperty(value = "公司名称", example = "公司名称")
private String companyName;
@ApiModelProperty(value = "公司id", example = "公司id")
private String companyId;
}
-
常用的 lombok 注解
@Data:注解在类上;提供类所有属性的 getter 和 setter 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setter 方法
@Getter:注解在属性上;为属性提供 getter 方法
@ToString:注解在类上;生成toString()方法,默认情况下,它会按顺序(以逗号分隔)打印你的类名称以及每个字段。 -
注意事项
- 项目我们在使用Lombok的时候是没有生成Get、Set方法的,所以我们在测试的时候有时候并没有可以调取的Getter and Setter方法,所以当部分需要测试的环境下Lombok也不是万能的,我们还是需要手动添加上对应的Getter and Setter方法
- @Data 无法设置这些注解的参数,例如callSuper、includeFieldNames 和 exclude,如果需要为这些参数中的其中一个设置非默认值,就需显式添加这些注释
- @ToString 注解会按顺序打印你的每个字段,所有非静态属性都会被打印,如果你想要选择打印某些字段的话,可以给字段设置 @ToString.Exclude标记要排除的字段,或使用@ToString.Include标记要包含的每个字段。