開門見山:本教程同步更新於同名公共號:程序員八阿哥 喜歡的朋友可以搜索並關注
獲取源碼:本教程源碼獲取方式,私信回覆關鍵字: SBJC
前言:我們之前代碼中充斥著太多重複且不友好的getter/setter/toString,異常處理,I/O流的關閉操作等等,這些樣板代碼既沒有技術含量,又影響著代碼的美觀,隨著屬性的增多很容易出錯,Lombok應運而生
簡介
Lombok能以簡單的註解形式來簡化java代碼,提高開發人員的開發效率
安裝(IDEA)
File->Setting->Plugins->lombok->install
使用
Maven依賴配置
註解介紹:
@Setter 註解在類或字段,註解在類時為所有字段生成setter方法,註解在字段上時只為該字段生成setter方法。
@Getter 使用方法同@Setter,區別在於生成的是getter方法。
@ToString 註解在類上,添加toString方法。
@EqualsAndHashCode 註解在類上,生成hashCode和equals方法。
@NoArgsConstructor 註解在類上,生成無參的構造方法。
@RequiredArgsConstructor 註解在類上,為類中需要特殊處理的字段生成構造方法,比如final和被
@NonNull 註解的字段。@AllArgsConstructor 註解在類上,生成包含類中所有字段的構造方法。
@Data 註解在類上,生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法。
@Slf4j 註解在類上,生成log變量,嚴格意義來說是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);
使用案例:
實體中使用
<code>package com.bug.mq.chapter1;
import lombok.Data;
@Data
public class User {
private Long userId;
private String account;
private String realName;
private String nickName;
}/<code>
日誌註解使用:@Slf4j
<code>package com.bug.mq.chapter1;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@Slf4j
public class Chapter11Application {
public static void main(String[] args) {
log.info("服務開始啟動");
SpringApplication.run(Chapter11Application.class, args);
}
}/<code>
高級用法
Bean中的鏈式用法
<code>package com.bug.mq.chapter1;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class User {
private Long userId;
private String account;
private String realName;
private String nickName;
}/<code>
eg:
<code>@Test
void contextLoads() {
User user = new User().setUserId(1l).setAccount("account").setNickName("nickName");
}/<code>
靜態構造方法使用
<code>package com.bug.mq.chapter1;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@RequiredArgsConstructor(staticName = "of")
public class User {
private Long userId;
private String account;
private String realName;
private String nickName;
}/<code>
eg:
<code> @Test
void contextLoads() {
User user = User.of().setUserId(1l).setAccount("account").setNickName("nickName");
}/<code>
Builder方式
<code>package com.bug.mq.chapter1;
import lombok.Builder;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.experimental.Accessors;
@Builder
public class User {
private Long userId;
private String account;
private String realName;
private String nickName;
}/<code>
eg:
<code>@Test
void contextLoads() {
User user = User.builder().userId(1l).account("account").nickName("nickName").build();
}/<code>
寫在最後:本文主要介紹lombok的好處和用法,希望能幫助到大家。後續還有更多連載系列文字更新,喜歡的朋友可以持續關注。謝謝。
閱讀更多 程序員八阿哥 的文章