Lombok註解

Lombok項目是一個Java庫,它會自動插入您的編輯器和構建工具中,從而使您的Java更加生動有趣。永遠不要再編寫另一個getter或equals方法,帶有一個註釋的類將具有功能全面的生成器,自動執行日誌記錄變量等等。

 安裝Lombok,maven項目添加以下內容到pom.xml.

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.12</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

      IntelliJ IDEA 安裝Lombok插件,打開IntelliJ IDEA後點擊菜單欄中的File-->Settings.點擊設置中的Plugins進行插件的安裝,在右側選擇Browse repositories...,然後在搜索頁面輸入lombok變可以查詢到下方的Lombok Plugin,鼠標點擊Lombok Plugin可在右側看到Install按鈕,點擊該按鈕便可安裝.

註解介紹(來自lombok官網)

@NonNull

使用@NonNull方法或構造函數的參數來使lombok爲您生成一個空檢查語句。

@Cleanup

自動資源管理:close()輕鬆安全地調用方法。

@Getter/@Setter

不再寫public int getFoo() {return foo;}

@ToString

無需啓動調試器即可查看您的字段:只需讓lombok toString爲您生成一個!

@EqualsAndHashCode

equals變得容易:從對象的字段生成hashCodeequals實現。

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

按順序構造函數:生成不帶參數的構造函數,每個final / non-nullfield都帶一個參數,或者每個字段帶一個參數。

@Data

所有現在一起:爲快捷方式@ToString@EqualsAndHashCode, @Getter在所有領域,@Setter所有非final字段,以及 @RequiredArgsConstructor

@Value

實現不可變的類,相當於給你類加final。

@Builder

@Builder 使您可以自動生成使您的類可實例化的代碼,例如:
Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();

@SneakyThrows

將受檢異常轉爲非受檢異常拋出(謹慎使用)

@Synchronized

自動爲對象靜態方法添加靜態變量鎖相當於類鎖,非靜態方法添加對象鎖。

@With

爲不可變屬性自動創建獨立的對象構造方法。

@Getter(lazy=true)

您可以讓lombok生成一個將在第一次調用此getter時計算一次值的getter,然後將其緩存。如果計算該值佔用大量CPU或該值佔用大量內存,這將很有用。

@Log

您將的變體@Log放在您的類上(適用於您所使用的日誌系統的任何一種);然後,您將擁有一個靜態的final log字段,該字段按照使用的日誌記錄框架通常規定的方式進行初始化,然後可以使用該方法編寫日誌語句。

有幾種選擇:
@CommonsLog
創建 private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@Flogger
創建 private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass();
@JBossLog
創建 private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
@Log
創建 private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j
創建 private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2
創建 private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j
創建 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j
創建 private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);
@CustomLog
創建 private static final com.foo.your.Logger log = com.foo.your.LoggerFactory.createYourLogger(LogExample.class);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章