Lombok註解概覽
什麼是Lombok
Lombok是一個java庫,可以自動插入編輯器並構建工具,為您的java增添色彩。永遠不要再寫另一個getter或equals方法,使用一個註釋,您的類具有一個功能齊全的構建器,自動化您的日誌記錄變數等等。
為什麼用Lombok
減少大量工作量和維護難度的難度,加速開發。
Maven依賴配置
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency>
註解說明
註解 | 說明 |
---|---|
@Getter
&@Setter
|
用在 Java Bean 類或者欄位上,無需生成 get/ set 方法,會自動生成所有的 get/ set 方法及一個預設的構造方法。 |
@ToString
|
使用在類上,相當於重寫toString()
方法,輸出入blog=huangdayu
|
@NoArgsConstructor
|
用在類上,用來生成一個預設的無參構造方法。 |
@RequiredArgsConstructor
|
用在類上,必選引數構造器。使用類中所有帶有@NonNull
註解和final
型別的欄位生成對應的構造方法。 |
@AllArgsConstructor
|
用在類上,生成一個所有引數的構造方法,預設不提供無參構造方法。 |
@Data
|
等同於@Getter
,@Setter
,@RequiredArgsConstructor
,@ToString
,@EqualsAndHashCode
註解的集合 |
@Value
|
用在類上,構建不可變的物件類,等同於@Getter
,@FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE)
,@AllArgsConstructor
,@ToString
,@EqualsAndHashCode
的集合 |
@NonNull
|
用在屬性上,用於欄位的非空檢查,如果傳入到 set 方法中的值為空,則丟擲空指標異常,該註解也會生成一個預設的構造方法。 |
Builder
|
用在類上,把我們的Bean類包裝為一個構建者模式,編譯時增加了一個Builder內部類和全欄位的構造器。 |
@EqualsAndHashCode
|
用在類上,相當於重寫equals()
方法和hashCode()
方法 |
@Cleanup
|
用在方法上,自動管理資源,用在區域性變數之前,在當前變數範圍內即將執行完畢退出之前會自動清理資源,自動生成try-finally這樣的程式碼來關閉流 |
@Builder
|
用在類、構造器、方法上,為你提供複雜的builder APIs,讓你可以像如下方式一樣呼叫Person.builder().name(“A”).city(“B”).job(“B”).job(“C”).build(); |
@SneakyThrows
|
用在類上,自動拋受檢異常,而無需顯式在方法上使用throws語句 |
@Synchronized
|
用在方法上,將方法宣告為同步的,並自動加鎖,而鎖物件是一個私有的屬性$lock
或$LOCK
,而java中的synchronized關鍵字鎖物件是this,鎖在this或者自己的類物件上存在副作用,就是你不能阻止非受控程式碼去鎖this或者類物件,這可能會導致競爭條件或者其它執行緒錯誤 |
@Log
|
生成log物件,Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName()); |
@CommonsLog
|
Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class); |
@Log4j
|
Creates log = org.apache.log4j.Logger.getLogger(LogExample.class); |
@Log4j2
|
Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class); |
@Slf4j
|
Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class); |
@XSlf4j
|
Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class); |