Lombok–您绝对应该尝试一下
Lombok在Java生態系統中并不是什么新鮮事物,但是我必須承認,直到我嘗試使用它或被“確信”嘗試它之前,我總是低估了它的價值。 我發現添加一個庫來生成代碼的價值并不高,這些庫可以被當今的任何現代IDE輕松生成。 因此,我忽略了該庫,并且一直在編寫或生成大量樣板代碼。 不再。 2016年,我加入了一個基于Spring的項目,其中Lombok項目已經到位。 從那時起,我就再也沒有Lombok了……為什么?
那么,Lombok到底是什么?
簡而言之,Lombok是一個Java庫,通過插入IDE和構建工具可以為開發人員生成大量代碼。 例如, [@Data](https://projectlombok.org/features/Data)向POJO添加getters , setters , equals , hashCode和toString方法之外,還可以使用單個[@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時,您知道生成的代碼與某些類相關。 例如, UserBuilder與User類相關,因此您可以跳到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–您绝对应该尝试一下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是JavaServer Faces(
- 下一篇: 京东建材发布“1家1”计划 2023年上