Lombok在Java生态系统中并不是什么新鲜事物,但是我必须承认,直到我尝试使用它或被“确信”尝试它之前,我总是低估了它的价值。 我发现添加一个库来生成代码的价值并不高,这些库可以被当今的任何现代IDE轻松生成。 因此,我忽略了该库,并且一直在编写或生成大量样板代码。 不再。 2016年,我加入了一个基于Spring的项目,其中Lombok项目已经到位。 从那时起,我就再也没有Lombok了……为什么?

那么,Lombok到底是什么?

简而言之,Lombok是一个Java库,通过插入IDE和构建工具可以为开发人员生成大量代码。 例如, [@Data](https://projectlombok.org/features/Data)向POJO添加getterssettersequalshashCodetoString方法之外,还可以使用单个[@Data](https://projectlombok.org/features/Data)注释。

诸如Gradle或Maven之类的构建工具支持不会带来问题

Lombok与Gradle毫无问题。 您在Lombok上添加了compileOnly依赖关系,基本上就是这样:

compileOnly ("org.projectlombok:lombok:${lombokVersion}")

尽管我主要处理与Spring相关的项目,而且最近它们都基于Gradle,但我也没有遇到过Maven的任何问题。

IntelliJ支持足够好

我每天都在与IntelliJ合作,它对Lombok的支持效果很好。 第三方插件支持Lombok: https : //github.com/mplushnikov/lombok-intellij-plugin 。

插件的配置非常简单:您需要为项目启用Lombok插件和注释处理。 当然,Lombok必须在类路径中。 配置项目后,您可以开始导入Lombok批注,并立即在源代码中开始使用它们。

我没有注意到IntelliJ中代码完成的问题。 我没有发现任何延迟或功能缺失。 当我想为生成的方法显示代码定义时,它向我显示了Lombok批注-很好-尽管可以看到生成的代码,但会很好。

不利的一面是,有时会发生代码无法立即使用的情况,因此需要执行手动编译。 就我而言,这真的很少见。

启用Lombok后,无法直接从代码编辑器访问某些功能。 例如,使用@Builder批注时,会生成许多代码,包括builder类。 要查找某些构建器方法的用法,您需要从“ 结构”视图中执行此操作。

在生成的代码中无法按名称导航到符号,但这似乎不是问题:使用Lombok时,您知道生成的代码与某些类相关。 例如, UserBuilderUser类相关,因此您可以跳到User中查看其构建器(如果确实需要)。

总而言之,在IntelliJ上,每天都没有显示停止器。

阅读代码更容易

使用Lombok的主要优点之一是所需读取的代码更少。 这在代码审查期间非常有用–我打开类,然后立即查看它是否是@Value @Data类或@Value对象(如果它提供了@Builder等)。尽管Lombok在源代码中需要更多注释(Lombok批注,JPA批注,Jackson批注,Spring批注...),它仍然使代码更简洁,更易于阅读/查看。

Lombok使(一些)团队实践标准化

例如,在我开始使用Lombok之前,在每个项目中都有几种创建构建器的方法。 使用Lombok可以更轻松地维护这些做法( @Builder@Singularity )。

Lombok与其他库配合良好

我没有遇到JPA或Jakson注释与Lombok注释混合的问题。 不过,我过去曾听说过有关MapStruct和Lombok的问题,但现在似乎已解决:( https://github.com/mapstruct/mapstruct/issues/510 )

Lombok批注可以轻松地与Spring组件一起使用,因此创建时所需的代码更少。 例如@AllArgsConstructor可用于注入bean的依赖项,因为Spring不需要使用@Autowire注释构造函数:

@Service
@RequiredArgsContructor
class SomeService {private final Dep1 dep1;private final Dep2 dep2;
}

值得注意的是,Spring Boot Initializer( http://start.spring.io/ )在生成的项目文件中提供了Lombok依赖性(要添加到新项目的核心依赖性之一)。

考虑将Lombok用于您的下一个项目

Lombok是一个很棒的库,可以加快开发速度,使代码更简洁,更易于阅读和维护。 Lombok似乎足够成熟,可以尝试一下。 即使您决定仅将其用于简单案例,也可以为您的项目带来很多价值。 信不信由你,但是直到我尝试了几个星期,我对Lombok都非常怀疑。

翻译自: https://www.javacodegeeks.com/2017/09/lombok-definitely-give-try.html

Lombok–您绝对应该尝试一下相关推荐

  1. IDEA 2020.3版本中的lombok失效问题

    本地安装的是IDEA2020.3 社区版,使用lombok插件失效,编译报错,"You aren't using a compiler supported by lombok, so lom ...

  2. IDEA安装Lombok插件失败的解决方案

    Lombok简介 Lombok是Java语言的实用工具,确切的说,应该说是一个很好用的插件,对,插件!可以用来帮助开发人员消除Java代码的冗长,尤其是对于简单的Java对象(POJO),它通过注解实 ...

  3. 还在为IntelliJ Lombok 插件烦恼吗?来这里带你一起飞

    目录 IntelliJ Lombok 插件安装 IntelliJ Lombok 注解 Lombok 简介 Lombok 注解说明 @val 解读 总览 支持的配置键: 小字 @Getter和@Sett ...

  4. IDEA中Lombok插件的安装与使用

    1.安装 1.1 2021 之前版本安装lombok 找到idea的settings--plugin选项--搜索Lombok--安装 具体可参考: IDEA中Lombok插件的安装与使用_魏晓蕾的博客 ...

  5. Spring学习笔记:尝试Lombok简化实体类代码

    文章目录 一.Lombok概述 二.安装Lombok插件 三.Lombok注解 (一)@Data (二)@Getter/@Setter (三)@NonNull (四)@Cleanup (五)@Equa ...

  6. Lombok!代码简洁神器还是代码“亚健康”元凶?

    以下文章来源方志朋的博客,回复"666"获面试宝典 关于Lombok,DD是一个重度用户,从我编写的Spring Boot教程还是Spring Cloud教程中,都可以看到几乎每个 ...

  7. SpringBoot优雅编码之:Lombok加持

    概述 Lombok 通过提供简单的语法注解形式来帮助简化消除一些必须有但显得很臃肿的 java 代码.典型的是对于 POJO对象的简化(如自动帮我们生成Setter和Getter等),有了Lombok ...

  8. eclipse java luna,java-如何在Eclipse Luna中配置Lombok

    java-如何在Eclipse Luna中配置Lombok 我使用Maven在Eclipse Luna中配置了龙目岛. 注释已正确添加,但没有生成getter和setter. eclipse.ini ...

  9. 使用Project Lombok是否安全? [关闭]

    本文翻译自:Is it safe to use Project Lombok? [closed] In case you don't know Project Lombok helps with so ...

最新文章

  1. win10启动修复_win10下以安全模式启动电脑全攻略,装机、修复电脑故障必备
  2. ThinkPHP 中M方法和D方法的具体区别
  3. 上帝与集合的正确用法(bzoj3884)
  4. Java多线程编程中Future模式的详解
  5. LeetCode--33. 搜索旋转排序数组(二分法)
  6. 调整心态,java复习要点总结。
  7. oracle and和or的执行顺序,Oraclewhere语句中and,or,not的执行顺序
  8. 读取文本中的数用英文转换过来
  9. zookeeper资料
  10. 【python】谷歌翻译
  11. BURP安装Turbo Intruder插件报错问题
  12. 河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc
  13. Windows10系统提示 为了对电脑进行保护,已经阻止此应用(管理员已阻止你运行此应用。有关详细信息,请与管理员联系。)的解决办法
  14. Docker 的新变化你知道多少?
  15. (转)DEDECMS模板原理、模板标签学习 - .Little Hann
  16. 玩转OpenStack网络Neutron(1)--热身
  17. 联想台式电脑硬盘分区失败数据恢复
  18. STM32 串口 FIFO
  19. grep -rn搜索服务配置文件信息、log字段信息
  20. c语言汇编6,C语言是如何转换成汇编语言的6个步骤带你解析

热门文章

  1. Memcached总结
  2. JavaFX官方教程(七)之使用FXML创建用户界面
  3. Oracle入门(十四.15)之捕获Oracle服务器异常
  4. 输入框限定保留三位小数点
  5. Struts文件上传与下载详解_文件的下载
  6. SpringMVC中使用作用域对象完成数据的流转
  7. ubuntu下inotifywait实现目录、文件监控【包含子目录】
  8. rabbitmq生产者基于事务实现发送确认
  9. spring boot 入门-使用spring boot构建简单应用
  10. java数据库编程——执行查询操作(一)