前言
相信大部分开发人员都遇到过,在java中对象出现大量的属性生成构造器、getter/setter、equals、hashcode、toString方法,显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。那么有没有比较好的方法去简化这些冗余的低效的代码呢,现在给大家介绍Lombok。
初始
Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 和 equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。
Lombok 缺点
- 消除冗余低效的代码
- 注释实现快速开发
Lombok 缺点
- 强行安装,如果团队中一个人使用了Lombok插件,所有人必须安装。
- 代码可读性,可调试性低,开发过程中缺少响应的方法,在编译阶段才生成。
- 有未知的风险:开发者对其产生过度依赖,容易产生意想不到的结果。
- 影响升级:对于代码有很强的侵入性,对JDK的升级和框架的升级,
- 破坏封装性,代码耦合度增加,对项目有一定的干扰。
Lombok注解
注解 | 描述 |
@NonNull | 在方法或者构造方法前进行参数非空检查 |
@Cleanup | 自动资源管理,安全的调用close方法 |
@Getter | 成员变量生成对应的set方法 |
@Setter | 成员变量生成对应的get方法 |
@ToString | 生成toString,equals和hashcode方法 |
@EqualsAndHashCode | 生成toString、equals、hashcode和canEqual方法 |
@NoArgsConstructor | 为类产生无参的构造方法 |
@RequiredArgsConstructor | 类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法 |
@AllArgsConstructor | 为类产生包含所有参数的构造方法 |
@Data | 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法 |
@Value | 和@Data类似,定义为private final修饰,并且不会生成set方法 |
@SneakyThrows | 捕获异常并在catch中用Lombok.sneakyThrow(e)把异常抛出 |
@Synchronized | 和synchronized关键字相同 |
@Log | 注解用在类上,直接进行日志记录 |
Lombok安装
设置
选择file目录点击settings。
选择plugins,搜索lombok。
选择安装即可。
添加依赖
<!-- lombok start --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency> <!-- lombok end -->
结语
这样Lombok与Spring Boot集成成功啦。更多的测试大家可以深入研究一下Lombok相关信息,相信一定会有新大陆发现的。