Lombok–您绝对应该尝试一下

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值