J2SE - Lombok自動生成實體方法的工具類庫的使用

襲冷發表於2018-08-27

一、相關說明
    Lombok是一個可以通過註解形式在編譯原始碼的時候生成對應getter、setter、equals、hashcode、toString等方法的工具類庫,幫助我們消除重複工作和簡化相關程式碼
    官方地址:https://projectlombok.org/;Github地址:https://github.com/rzwitserloot/lombok

二、外掛安裝
下載lombok.jar包並執行,點選安裝介面中 Specify location按鈕,選中eclipse.exe, 點選Install/Update,即可安裝。安裝原理即在eclipse.ini中設定javaagent屬性

三、新增依賴

  <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.2</version>
  </dependency>

四、常用註解
    @Getter: 註解在 類 上,會對所有的非靜態(non-static)屬性生成Getter方法,放在屬性上,會對該屬性生成Getter方法。並可以指定Getter方法的訪問級別

    @Setter: 放在 類 上,會對所有的非靜態(non-static)屬性生成Setter方法,放在屬性上,會對該屬性生成Setter方法。並可以指定Setter方法的訪問級別

    @NoArgsConstructor: 註解在 類 上;為類提供一個無參的構造方法。

    @RequiredArgsConstructor: 註解在 類 上;使用類中所有帶有 @NonNull 註解的或者帶有 final 修飾的成員變數生成對應的構造方法

    @AllArgsConstructor: 註解在 類 上;為類提供一個全參的構造方法,加了這個註解後,類中不提供預設構造方法

    @EqualsAndHashCode: 註解在 類 上;預設情況下,會使用所有非瞬態(non-transient)和非靜態(non-static)欄位來生成equals和hascode方法,也可以指定具體使用哪些屬性

    @NonNull: 註解在 屬性 上,會自動產生一個關於此引數的非空檢查,如果引數為空,則丟擲一個空指標異常。

    @Cleanup: 這個註解用在 變數 前面,可以保證此變數代表的資源會被自動關閉,預設是呼叫資源的 close() 方法,如果該資源有其它關閉方法,可使用 @Cleanup(“methodName”) 來指定要呼叫的方法

    @ToString: 註解在 類 上;生成toString方法,預設情況下,會輸出類名、所有屬性,屬性會按照順序輸出,以逗號分割。,引數includeFieldNames來控制輸出中是否包含的屬性名稱,callSuper輸出父類屬性

    @Value: 註解在 類 上,會生成含所有引數的構造方法,get 方法,此外還提供了equals、hashCode、toString 方法

    @SneakyThrows: 註解在 方法 上,可以將方法中的程式碼用 try-catch 語句包裹起來,捕獲異常並在 catch 中用 Lombok.sneakyThrow(e) 把異常丟擲,可以使用 @SneakyThrows(Exception.class) 的形式指定丟擲哪種異常
    
    @Synchronized: 註解在 靜態(類) 方法 或者 例項 方法 上,效果和 synchronized 關鍵字相同,區別在於鎖物件不同,對於靜態方法和例項方法,synchronized 關鍵字的鎖物件分別是類的 class 物件和 this 物件,而 @Synchronized 的鎖物件分別是 私有靜態 final 物件 lock 和 私有 final 物件 lock

    @Log4j: 註解在 類 上;為類提供一個 屬性名為 log 的 log4j 日誌物件,提供預設構造方法
    
    @Slf4j:註解在 類 上;等同於:private final Logger logger = LoggerFactory.getLogger(XXX.class);

    @Data: 註解在 類 上;包含@ToString, @EqualsAndHashCode, 所有屬性的@Getter, 所有non-final屬性的@Setter和@RequiredArgsConstructor的組合,通常情況下,基本上使用這個註解就足夠了

 

 

相關文章