为什么使用lombok
因为懒啊,使用lombok可以能少写一点代码,例如实体类的getter、setter方法(而且狂加注解真的很爽/滑稽)
但需要注意的是,由于省略了许多代码,采用了注解代替,可能会使阅读性降低。(有些人会这么说,但个人觉的能在小组内部做好技术统一其实不是什么问题,因为省略的代码大部分都是一些getter,setter,toString之类的…)
另外使用lombok需要在IDEA中安装一个插件,如果没有这个插件可能会出现很多报红,当一个没有使用过lombok的同行来看你写的代码可能会感觉有些疑惑。
##如何使用lombok
####在IDEA中安装lombok插件
打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> 安装完成重启IDEA –> 安装成功
添加依赖
在pom文件中添加依赖
1 | <dependency> |
使用注解
关于lombok提供的注解可以参考lombok帮助文档,此处对常用的注解做一些简单的描述
@Getter和@Setter:这个注解可以用在类上或属性上,可以创建出getter和setter方法,同时还会创建一个无参构造。
@NonNull:该注解使用在属性上,该注解用于属的非空检查,当放在setter方法的字段上,将生成一个空检查,如果为空,则抛出
NullPointerException
,该注解会默认生成一个无参构造。@toString:该注解用在类上,会自动生成
toString
方法。- 如果需要可以通过注释参数
includeFieldNames
来控制输出中是否包含的属性名称。 - 可以通过
exclude
参数中包含字段名称,可以从生成的方法中排除特定字段。 - 可以通过
callSuper
参数输出父类字段,前提是父类也有toString
方法,不然会打印出地址值。
- 如果需要可以通过注释参数
@EqualsAndHashCode:这个注解可以用在类上,会生成
equals
方法和hashCode
方法,当存在继承关系需要设置callSuper
参数为true
。NoArgsConstructor:这个注解可以用在类上,可以提供一个无参构造。
@AllArgsConstructor:这个注解可以用在类上,可以提供一个全参构造,默认不提供无参构造。
@Data:这个注解用在类上,会创建getter、setter、equals、canEqual、hashCode、toString方法 。
@Builder:可以开启建造者模式,创建对象的时候不再需要单独调用setter方法。
- 将这个注解与@Data一起使用可以减少很多代码,但这样使用时需要注意一点,我们需要手动创建一个无参构造,并在上面加上@Tolerate注解,不然会报错。
Log:log的注解有很多选择,具体如下,可以根据不同的日志系统选择需要的注解
1 | //@CommonsLog |