非常好用的外掛之IntelliJ IDEA lombok外掛的安裝和使用
阿新 • • 發佈:2018-12-05
一、lombok的介紹
lombok是開源的程式碼生成庫,是一款非常實用的小工具,我們在編輯實體類時可以通過lombok註解減少getter、setter等方法的編寫,在更改實體類時只需要修改屬性即可,減少了很多重複程式碼的編寫工作。
此外掛需要下載、安裝、配置,使用起來雖然方便但是需要記住幾個常用註解,下面會介紹。
二、lombox的安裝
因為本人用的是idea,所以在此只演示在idea上面的安裝。
idea其實是自帶lombox外掛的,可以聯網進行下載,注意網路一定要好
1.1 開啟File–>Settings,或者使用快捷鍵Ctrl+Alt+S進入設定頁面。左側選擇Plugins(外掛),右側點選Browse repositories…,
1.2 進入外掛安裝頁面。。。。
1.3 此時,網路好的話可以順利下載,不好的話,需要反覆操作,或是開流量吧。。。
1.4 你以為到這裡就完成了嗎?高興的太早了,他還有一個非常重要的步驟。就是。。。啟用註釋處理,這步不做的話,lombox還是不能用,你說氣人不。具體為什麼要這樣做,我也不太記得了,如果哪位大神知道,還請留言告知。說是放開編譯許可權之類的。。。
三、lombox的依賴配置
因為我用的是gradle,所以在build.gradle檔案中新增依賴。
dependencies { implementation('org.springframework.boot:spring-boot-starter-web') implementation('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2') runtimeOnly('mysql:mysql-connector-java') testImplementation('org.springframework.boot:spring-boot-starter-test') //orika 依賴 compile('ma.glasnost.orika:orika-core:1.5.1') //lombox依賴 compile('org.projectlombok:lombok:1.16.16') }
四、lombox的使用
二話不說上程式碼更清晰。。。。。
用lombox之前,每次get、set方法都要很多行,雖然也有快捷鍵生成,但是程式碼看起來也不是很清爽。
public class UserA {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
但是有了lombox之後。。。。。只需要一個@Data註釋,就問你給力不?
@Data
public class UserA {
private String name;
private int age;
}
雖然看不到,但是lombox已經幫我們生成了。。。
五、lombox註釋的使用(這些都是摘抄的,因為大同小異)
- @Data:註解在類上,將類提供的所有屬性都新增get、set方法,並新增、equals、canEquals、hashCode、toString方法
- @Setter:註解在類上,為所有屬性新增set方法、註解在屬性上為該屬性提供set方法
- @Getter:註解在類上,為所有的屬性新增get方法、註解在屬性上為該屬性提供get方法
- @NotNull:在引數中使用時,如果呼叫時傳了null值,就會丟擲空指標異常
- @Synchronized 用於方法,可以鎖定指定的物件,如果不指定,則預設建立一個物件鎖定
- @Log作用於類,建立一個log屬性
- @Builder:使用builder模式建立物件
- @NoArgsConstructor:建立一個無參建構函式
- @AllArgsConstructor:建立一個全參建構函式
- @ToStirng:建立一個toString方法
- @Accessors(chain = true)使用鏈式設定屬性,set方法返回的是this物件。
- @RequiredArgsConstructor:建立物件
- @UtilityClass:工具類
- @ExtensionMethod:設定父類
- @FieldDefaults:設定屬性的使用範圍,如private、public等,也可以設定屬性是否被final修飾。
- @Cleanup: 關閉流、連線點。
- @EqualsAndHashCode:重寫equals和hashcode方法。
- @toString:建立toString方法。