《SpringBoot2.X極簡教程》集成Lombok以及Lombok高級用法

開門見山:本教程同步更新於同名公共號:程序員八阿哥 喜歡的朋友可以搜索並關注

獲取源碼:本教程源碼獲取方式,私信回覆關鍵字: SBJC

前言:我們之前代碼中充斥著太多重複且不友好的getter/setter/toString,異常處理,I/O流的關閉操作等等,這些樣板代碼既沒有技術含量,又影響著代碼的美觀,隨著屬性的增多很容易出錯,Lombok應運而生


《SpringBoot2.X極簡教程》集成Lombok以及Lombok高級用法

簡介

Lombok能以簡單的註解形式來簡化java代碼,提高開發人員的開發效率


安裝(IDEA)

File->Setting->Plugins->lombok->install

《SpringBoot2.X極簡教程》集成Lombok以及Lombok高級用法


使用

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

《SpringBoot2.X極簡教程》集成Lombok以及Lombok高級用法

使用案例:

實體中使用

<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>

《SpringBoot2.X極簡教程》集成Lombok以及Lombok高級用法

高級用法

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的好處和用法,希望能幫助到大家。後續還有更多連載系列文字更新,喜歡的朋友可以持續關注。謝謝。


《SpringBoot2.X極簡教程》集成Lombok以及Lombok高級用法


分享到:


相關文章: