Lombok

一、Lombok介绍以及优点

  1. 介绍

1.1 龙目岛:位于印度尼西亚西努沙登加拉省岛屿;

1.2 官网:https://projectlombok.org

1.3 作用:通过简单注解来精简代码达到消除冗长代码的目的;

  1. 优点(优点有很多,主要列举自己认为重要的)

2.1 提高编码效率;

2.2 使代码更简洁;

2.3 消除冗长代码;

2.4 避免修改字段名字时忘记修改方法名;

2.5 注意:IDE上必须要支持Lombok,否则会报错;

二、Lombok原理

  1. 为什么能使用Lombok?

Lombok支持JSR 269 Pluggable Annotation Processing API,Javac从Java6开始支持“JSR 269 API”规范,只要程序实现了该API,就能在Javac运行的时候得到调用;

2.Javac编译源码的具体流程如下:
Lombok运行原理

三、Lombok引入

使用Maven引入

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-maven</artifactId>
    <version>1.16.20.0</version>
</dependency>

四、Lombok插件(IDEA)
IDEA中安装Lombok插件

五、Lombok常用注解

@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter :注解在属性上;为属性提供 setting 方法
@Getter :注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
@Cleanup : 可以关闭流
@Builder : 被注解的类加个构造者模式
@Synchronized : 加个同步锁
@SneakyThrows : 等同于try/catch 捕获异常
@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
@toString:注解在类上;为类提供toString方法(可以添加排除和依赖);
官方文档https://projectlombok.org/features/index.html

六、反编译官网:http://jd.benow.ca/

七、Lombok验证(通过Java Decompiler验证Class文件)

八、Lombok工作中需要注意的点

  1. 在类需要序列化、反序列化时详细控制字段时(例如:Jackson json序列化);

  2. 使用Lombok能够省去手动创建setter和getter方法,但是也降低了源代码文件的可读性和完整性,降低了源代码阅读的舒适度;

  3. 使用@Slf4j还是@Log4j看项目使用的日志框架;

  4. 选择适合的地方使用Lombok,例如POJO是一个好地方,因为他很单纯;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、项目背景 在写Java程序的时候经常会遇到如下情形:新建了一个Class类,然后在其中设置了几个字段,最后还需...
    西二旗老司机阅读 958评论 0 1
  • 1 简介 Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程...
    七寸知架构阅读 7,137评论 1 56
  • 在面向对象编程中必不可少需要在代码中定义对象模型,而在基于Java的业务平台开发实践中尤其如此。相信大家在平时开发...
    消失er阅读 12,842评论 15 150
  • 1、lombok介绍及优点: 通过简单注解来精简代码达到消除冗长代码的目的它的优点是: 提高编码的效率、使代码...
    HodeOnWeCanWin阅读 439评论 0 0
  • Lombok介绍 Lombok官网:(https://projectlombok.org)通过简单的注解来精简代码...
    dashajin阅读 1,210评论 1 0