1. 程式人生 > >ProjectLombok外掛----減少 Java 應用程式中樣板程式碼量(get、set.....)

ProjectLombok外掛----減少 Java 應用程式中樣板程式碼量(get、set.....)

Lombok是一個外掛,用於自動生成java程式碼,減少 Java 應用程式中樣板程式碼量

Lombok外掛的安裝(必須安裝,如果不安裝Eclipse等工具無法解析Lombok註解)

         安裝方法:

                1、雙擊下載下來的JAR包安裝,會自動尋找使用的Eclipse等工具(手動新增Eclipse等工具的安裝路徑)。

                2、使用命令:在lombok.jar存放的目錄使用 java -jar lombok.jar安裝jar,預設使用eclipse

Lombok註解

  1. @val:用於變數,相當於將區域性變數宣告為final
  2. @Value:用於類,相當於為屬性新增final宣告,有Get,equals,hashcode等方法,沒有Set方法
  3. @Cleanup:自動管理資源,用於區域性變數,在該變數的範圍之內即將執行完並且退出之前清理資源(jdbc連線資料庫時關閉流)
  4. @NonNull:用於給某個方法中的引數加註解,自動對該引數進行非空校驗(為空,拋異常 NullPointerException)
  5. @Builder:用於類、構造器、方法,提供Builder API(可以自己百度一下)
  6. @ToString:用於,其中有引數,如(exckude="變數名“)--在toString方法中排除xxx屬性
  7. @Getter/@Setter:用於屬性
    ,不用生成get/set方法,可以指定其訪問的範圍
  8. @EqualsAndHashCode:用於類自動生成equals方法和hashCode方法
  9. @NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor:用於類,自動生成建構函式。如果@NonNull屬性作為引數的建構函式,如果指定staticName = “of”引數,同時還會生成一個返回類物件的靜態工廠方法
  10. @Data:用於類,相當於同時使用了@ToString,@Getter,@Setter,@RequiredArgsConstrutor,@EqualsAndHashCode註解,對於pojo相當美滋滋
  11. @SneakyThrows:自動丟擲異常,無需顯示宣告
  12. @Synchronized:用於方法,將方法宣告為同步,並自動加鎖。鎖物件是一個私有的屬性$lock$LOCK,而java中的synchronized關鍵字鎖物件是this,鎖在this或者自己的類物件上存在副作用,不能阻止非受控程式碼去鎖this或者類物件,可能會導致競爭條件或者其它執行緒錯誤
  13. @Log:根據不同的註解生成不同型別的log物件,但是例項名稱都是log,有六種可選實現類
    1. @CommonsLog: log = org.apache.commons.logging.LogFactory.getLog(Example.class)
    2. @Log:log = java.util.logging.Logger.getLogger(Example.class.getName())
    3. @Log4j:log = org.apache.log4j.Logger.getLogger(Example.class)
    4. @Log4j2:log = org.apache.logging.log4j.LogManager.getLogger(Example.class)
    5. @Slf4j:log = org.slf4j.LoggerFactory.getLogger(Example.class)
    6. @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.使用註解