Lombok

Lombok介绍

Lombok官网:(https://projectlombok.org)
通过简单的注解来精简代码达到消除冗长代码的目的

Lombok优点

  • 提高编码效率
  • 是代码更简洁
  • 消除冗长代码
  • 避免修改字段名字时忘记修改方法名
  • 提高下‘逼格’

IDE上必须要支持Lombok,否则会报错

Lombok原理

  • JSR 269 Pluggable Annotation Processing API
  • javac从Java6开始支持“JSR 269 API”规范
  • 只要程序实现了该API,就能在javac运行的时候得到调用
  • Lombok实现了“JSR 269 API”,在编译时,javac编译源码的具体流程如下:


    image.png

Maven引入Lombok

pom.xml文件,加入到中:


      org.projectlombok
      lombok
      1.16.20
      provided

依赖可以从官网拿到

Lombok实战coding

  • @Data
    包含@Getter@Setter@ToString@EqualsAndHashCode
  • @Getter
    生成getter方法
  • @Getter(AccessLevel.PROTECTED)
    生成的getter方法不是默认的public而是protect
  • @Setter
    生成setter方法
  • @Setter(AccessLevel.PROTECTED)
    生成的setter方法不是默认的public而是protect
  • @NoArgsContructor
    无参构造器
  • @AllArgsContructor
    所有参数构造器
  • @ToString
    把这个类声明的所有属性转化成string
  • @EqualsAndHashCode
    使用Lombok默认规则重写equals和hashCode方法
  • @Slf4j
    声明这个注解之后可以直接调用log进行日志操作,使用的是logback
  • @Log4j
    项目用Log4j日志框架时使用

反编译大法

  • Java Decompiler (http://jd.benow.ca)
    分为:JD-GUI,JD-Eclipse,JD-IntelliJ

可以将Lombok修改之后编译的字节码反编译成源码,看看其如何实现。

Lombok验证

  • 通过Java Decompiler验证Class文件

Lombok工作中需要注意的点

  • 在类需要序列化、反序列化时详细控制字段的时候,例如:Jackson json序列化
  • 使用Lombok虽然能够省去手动创建setter和getters方法等繁琐,但是却降低了阅读源代码的舒适度

你可能感兴趣的:(Lombok)