天天看點

使用Lombok來精簡你的項目代碼

使用Lombok來精簡你的項目代碼

什麼是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