ProjectLombok外掛----減少 Java 應用程式中樣板程式碼量(get、set.....)
阿新 • • 發佈:2018-12-16
Lombok是一個外掛,用於自動生成java程式碼,減少 Java 應用程式中樣板程式碼量
Lombok外掛的安裝(必須安裝,如果不安裝Eclipse等工具無法解析Lombok註解)
安裝方法:
1、雙擊下載下來的JAR包安裝,會自動尋找使用的Eclipse等工具(手動新增Eclipse等工具的安裝路徑)。
2、使用命令:在lombok.jar存放的目錄使用 java -jar lombok.jar安裝jar,預設使用eclipse
Lombok註解
- @val:用於變數,相當於將區域性變數宣告為final
- @Value:用於類,相當於為屬性新增final宣告,有Get,equals,hashcode等方法,沒有Set方法
- @Cleanup:自動管理資源,用於區域性變數,在該變數的範圍之內即將執行完並且退出之前清理資源(jdbc連線資料庫時關閉流)
- @NonNull:用於給某個方法中的引數加註解,自動對該引數進行非空校驗(為空,拋異常 NullPointerException)
- @Builder:用於類、構造器、方法,提供Builder API(可以自己百度一下)
- @ToString:用於類,其中有引數,如(exckude="變數名“)--在toString方法中排除xxx屬性
- @Getter/@Setter:用於屬性
- @EqualsAndHashCode:用於類,自動生成equals方法和hashCode方法
- @NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor:用於類,自動生成建構函式。如果@NonNull屬性作為引數的建構函式,如果指定staticName = “of”引數,同時還會生成一個返回類物件的靜態工廠方法
- @Data:用於類,相當於同時使用了@ToString,@Getter,@Setter,@RequiredArgsConstrutor,@EqualsAndHashCode註解,對於pojo相當美滋滋
- @SneakyThrows:自動丟擲異常,無需顯示宣告
- @Synchronized:用於方法,將方法宣告為同步,並自動加鎖。鎖物件是一個私有的屬性
$lock
或$LOCK
,而java中的synchronized關鍵字鎖物件是this,鎖在this或者自己的類物件上存在副作用,不能阻止非受控程式碼去鎖this或者類物件,可能會導致競爭條件或者其它執行緒錯誤 - @Log:根據不同的註解生成不同型別的log物件,但是例項名稱都是log,有六種可選實現類
- @CommonsLog: log = org.apache.commons.logging.LogFactory.getLog(Example.class)
- @Log:log = java.util.logging.Logger.getLogger(Example.class.getName())
- @Log4j:log = org.apache.log4j.Logger.getLogger(Example.class)
- @Log4j2:log = org.apache.logging.log4j.LogManager.getLogger(Example.class)
- @Slf4j:log = org.slf4j.LoggerFactory.getLogger(Example.class)
- @XSlf4j:log = org.slf4j.ext.XLoggerFactory.getXLogger(Example.class)
1,4,11,12註解中不存在有引數,其他的註解中都存在
使用
1. 新增依賴
<!-- lombox 小工具 可以使類的get、set方法使用更方便 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.使用註解