sts 安裝lombok外掛
Lombok外掛應用
Lombok是一個第三庫,可以基於lombok中提供的API,在程式編譯時自動織入一些方法。這樣做的話可以簡化我們對某些方法的編寫,例如,省略pojo類中的set方法,get方法,toString等方法的編寫。我們寫的java程式可以在編譯時,通過lombok自動將這些方法新增到.class檔案中,其應用步驟如下:
第一步:新增依賴。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
第二步:找到下載的lombok-xxx.jar依賴所在的位置。
第三步:啟動作業系統命令列客戶端,並切換到lombok-xxx.jar檔案所在的目錄,然後,利用java –jar 指令啟動lombok外掛,如圖-15所示:
圖-15
回車執行如上命令,會彈出選擇安裝對話方塊,如圖-16所示:
圖-16
然後在彈出的框中選擇sts安裝目錄進行安裝,
安裝成功以後會出現如下彈出框,如圖-17所示:
圖-17
安裝成功以後可在STS工具的根目錄看到一個lombok.jar檔案,同時會在SpringToolSuite4.ini檔案的尾部新增lombok.jar檔案所在的具體路徑,例如
-javaagent:E:\software\sts-4.5.3.RELEASE\lombok.jar。
其中lombok.jar會預設建立在sts軟體的根目錄,如圖-18所示:
圖-18
說明:安裝成功以後重啟sts工具.(假如安裝成功以後再次啟動sts,此時無法啟動,可能與STS所在目錄有關係,可以將安裝目錄下的lombok.jar檔案拷出到特定目錄,然後修改SpringToolSuite4.ini檔案的最後一行的lombok.jar路徑即可,同時在配置檔案中也不能有空格)。
Lombok 常用註解分析:
@Setter 用於為描述的類生成setter方法,不包含final修飾屬性。
@Getter 用於為描述的類生成getter方法。
@ToString 用於為描述的類新增toString方法。
@EqualsAndHashCode 用於為描述的類,生成hashCode和equals方法。
@NoArgsConstructor 用於為描述的類生成無參的構造方法。
@AllArgsConstructor 用於為描述的類生成包含類中所有欄位的構造方法。
@Data用於為描述的類生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法。
@Slf4J 用於為描述的類新增一個日誌屬性物件
private static final Logger log =LoggerFactory.getLogger(Xxx.class);
程式碼案例分析:
package com.cy.pj.activity.pojo;
@Data
public class Activity {//.class
private Long id;
private String title;
private String category;
@DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
private LocalDateTime startTime;
@DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
private LocalDateTime endTime;
private Short state=1;//1 有效狀態
private String remark;
private String createdUser;
private LocalDateTime createdTime;
}
測試程式碼
package com.cy.pj.pojo;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootTest
public class ActivityTests {
@Test
public void testAty01() {
Activity aty=new Activity();
aty.setId(10L);
aty.setTitle("A-Title");
aty.setCategory("A-Type");
System.out.println(aty.getId());
System.out.println(aty.getTitle());
System.out.println(aty.getCategory());
log.info(aty.toString());
}
}