什麼是lombok
一言以蔽之:lombok是一種工具,提供了簡單的注解來簡化我們的重複冗長java代碼。比如一個java bean,注解了lombok的@data:
@data
public class normalbean {
private string name;
}
等價于以下代碼,getter/setter,tostring,equals和hashcode方法會在編譯時自動生成。
public string getname() {
return name;
}
public void setname(string name) {
this.name = name;
@override
public boolean equals(object o) {
if (this == o) return true;
if (o == null || getclass() != o.getclass()) return false;
normalbean that = (normalbean) o;
return name != null ? name.equals(that.name) : that.name == null;
public int hashcode() {
return name != null ? name.hashcode() : 0;
public string tostring() {
return "normalbean{" +
"name='" + name + '\'' +
'}';
lombok的官網,官網上有比較詳細的文檔。
安裝
lombok不僅要在項目中添加jar包,也要通過插件的形式開啟ide的支援。如果你的項目是maven建構的,那麼需要在pom.xml中添加以下依賴:
<dependency>
<groupid>org.projectlombok</groupid>
<artifactid>lombok</artifactid>
<version>1.16.10</version>
</dependency>
這裡推薦使用bom的形式管理pom依賴。比如spring io platform裡就包含了lombok的dependencymanagement。
idea
在idea下lombok的安裝比較簡單,在plugin裡面安裝lombok plugin即可
eclipse
将lombok.jar 複制到 eclipse.ini所在檔案夾的根目錄
編輯 eclipse.ini ,在末尾加入:
-xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
重新開機
用途
lombok包含了很多注解,如果全部用上,的确可以精簡很多的代碼。但在實際的項目中,我們常常隻在定義java bean的時候用上lombok,而在業務代碼中很少用到。因為lombok雖然能精簡代碼,但缺點也非常明顯:
降低代碼的可讀性
調試困難
大部分情況下,我們都應該将代碼的可讀性放在編碼要考慮因素的首位,以下這幾個是我覺得最常用的幾個lombok注解:
<a href="https://projectlombok.org/features/data.html">@data</a>
<a href="https://projectlombok.org/features/gettersetter.html">@setter/getter</a>
<a href="https://projectlombok.org/features/log.html">@log</a>
<a href="https://projectlombok.org/features/log.html">@noargsconstructor, @requiredargsconstructor和 @allargsconstructor</a>
<a href="https://projectlombok.org/features/builder.html">@builder</a>
@log和一系列相關注解(如@log4j,@slf4j)是我最喜歡的注解,不用寫一堆的getlogger。還有@builder也很友善,應付簡單的builder模式足以。
總結
lombok是個非常有用的工具,能夠幫助我們精簡很多臃腫冗長的代碼,不過也有其局限性,推薦在定義java bean中使用。
作者:佚名
來源:51cto