1. 程式人生 > 實用技巧 >sts 安裝lombok外掛

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());
        }
}