Lombok介绍

Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 和 equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

SpringToolSuite4安装Lombok

下载 lombok.jar

可以通过下面地址进行下载:

https://repo1.maven.org/maven2/org/projectlombok/lombok/1.18.18/lombok-1.18.18.jar

拷贝lombok.jar至STS目录

目录:/Applications/SpringToolSuite4.app/Contents/MacOS

接着需要将lombok-1.18.18.jar重命名为lombok.jar
(下面截图名称没有改,实际操作时,请将lombok-1.18.18.jar改为lombok.jar)

7c2yiab8hz4.png

在STS路径运行命令

cd /Applications/SpringToolSuite4.app/Contents/MacOS

java -jar lombok.jar

7c33gyrrdhc.png

7c35jdwcsn4.png

7c375ulst8g.png

可以查看到vim /Applications/SpringToolSuite4.app/Contents/Eclipse/SpringToolSuite4.ini

7c391enft34.png

Lombok用法

  • val:用在局部变量前面,相当于将变量声明为final
  • @NonNull:给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException)
  • @Cleanup:自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成try-finally这样的代码来关闭流
  • @Getter/@Setter:用在属性上,再也不用自己手写setter和getter方法了,还可以指定访问范围
  • @ToString:用在类上,可以自动覆写toString方法,当然还可以加其他参数,例如@ToString(exclude=”id”)排除id属性,或者@ToString(callSuper=true, includeFieldNames=true)调用父类的toString方法,包含所有属性
  • @EqualsAndHashCode:用在类上,自动生成equals方法和hashCode方法
  • @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:用在类上,自动生成无参构造和使用所有参数的构造函数以及把所有@NonNull属性作为参数的构造函数,如果指定staticName = “of”参数,同时还会生成一个返回类对象的静态工厂方法,比使用构造函数方便很多
  • @Data:注解在类上,相当于同时使用了@ToString@EqualsAndHashCode@Getter@Setter@RequiredArgsConstrutor这些注解,对于POJO类十分有用
  • @Value:用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法
  • @Builder:用在类、构造器、方法上,为你提供复杂的builder APIs,让你可以像如下方式一样调用Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();
  • @SneakyThrows:自动抛受检异常,而无需显式在方法上使用throws语句
  • @Synchronized:用在方法上,将方法声明为同步的,并自动加锁,而锁对象是一个私有的属性$lock$LOCK,而java中的synchronized关键字锁对象是this,锁在this或者自己的类对象上存在副作用,就是你不能阻止非受控代码去锁this或者类对象,这可能会导致竞争条件或者其它线程错误
  • @Getter(lazy=true):可以替代经典的Double Check Lock样板代码
  • @Log根据不同的注解生成不同类型的log对象,但是实例名称都是log,有六种可选实现类

    • @CommonsLog:等同于Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
    • @Log:等同于Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName());
    • @Log4j:等同于Creates log = org.apache.log4j.Logger.getLogger(LogExample.class);
    • @Log4j2:等同于Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
    • @Slf4j:等同于Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
    • @XSlf4j:等同于Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

标签: java, tools

已有 19 条评论

  1. 网站不错!!!!

  2. 博主真是太厉害了!!!

  3. 叼茂SEO.bfbikes.com

  4. 叼茂SEO.bfbikes.com

  5. 怎么收藏这篇文章?

  6. 想想你的文章写的特别好www.jiwenlaw.com

  7. 哈哈哈,写的太好了https://www.cscnn.com/

  8. 你的才华让人瞩目,期待你的更多文章。http://www.kssgbj.com

  9. 你的文章内容非常卖力,让人点赞。 https://www.4006400989.com/qyvideo/66852.html

  10. 你的才华让人瞩目,期待你的更多文章。 https://www.yonboz.com/video/84207.html

  11. 《极地热浪》电影片高清在线免费观看:https://www.jgz518.com/xingkong/166845.html

  12. 《皇家飞凤》动作片高清在线免费观看:https://www.jgz518.com/xingkong/23567.html

  13. 你的文章让我感受到了生活的美好,谢谢! http://www.55baobei.com/MCHqaqpnnd.html

  14. 哈哈哈,写的太好了https://www.lawjida.com/

  15. 作者以非凡的视角解读平凡,让文字焕发出别样的光彩。

  16. 价值导向积极,彰显社会责任意识。

  17. 做了几十年的项目 我总结了最好的一个盘(纯干货)

  18. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com

  19. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

添加新评论