SpringBoot圖文並茂講解Lombok庫的安裝與使用

1.相關介紹

Lombok是一個通過註解以達到減少代碼的Java庫,如通過註解的方式減少get,set方法,構造方法等, 同時可以自動化日志變量。

2.安裝步驟

1.添加依賴

在pom.xml中添加lombok的依賴

        <!--lombok依賴-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

2.安裝插件

IDEA中 File->Settings->Plugins,搜索安裝Lombok插件。

安裝完成,重啟IDEA

如果編譯時出錯,可能是沒有enable註解處理器。Annotation Processors > Enable annotation processing。設置完成之後程序正常運行(記得設置完成重啟一下IDEA)。

3.使用註解

Lombok註解文檔: https://projectlombok.org/features/all

Lombok提供註解方式來提高代碼的簡潔性,常用註解有:

註解 作用
@Data 註解在類,生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法。
@Setter 註解在類或字段,註解在類時為所有字段生成setter方法,註解在字段上時隻為該字段生成setter方法。
@Getter 使用方法同上,區別在於生成的是getter方法。
@AllArgsConstructor 註解在類,生成包含類中所有字段的構造方法。
@NoArgsConstructor 註解在類,生成無參的構造方法。
@ToString 註解在類,添加toString方法。
@NonNull 這個註解可以用在成員方法或者構造方法的參數前面,會自動產生一個關於此參數的非空檢查,如果參數為空,則拋出一個空指針異常。
@EqualsAndHashCode 註解在類,生成hashCode和equals方法。
@Log 這個註解用在類上,可以省去從日志工廠生成日志對象這一步,直接進行日志記錄,具體註解根據日志工具的不同而不同,同時,可以在註解中使用topic來指定生成log對象時的類名。不同的日志註解總結如下(上面是註解,下面是實際作用):
@CommonsLog
private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@JBossLog
private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
@Log
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j
private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2
private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j
private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

下面演示幾個註解的使用

使用註解前

User

package com.limi.entity;
public class User {
    private Integer id;
    private String userName;
    private String passWord;
    public User(){}
    public User(Integer id, String userName, String passWord) {
        this.id = id;
        this.userName = userName;
        this.passWord = passWord;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", passWord='" + passWord + '\'' +
                '}';
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassWord() {
        return passWord;
    }
    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }
}

使用註解, 效果和上面一致, 大大減少瞭代碼量

User

package com.limi.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Integer id;
    private String userName;
    private String passWord;
}

測試

package com.limi;
import com.limi.entity.User;
import lombok.extern.log4j.Log4j2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@Log4j2
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
        User user = new User(1, "andy", "123456");
        log.info(user); //使用Lombok的@Log4j2註解, 可以直接使用log
    }
}

到此這篇關於SpringBoot圖文並茂講解Lombok庫的安裝與使用的文章就介紹到這瞭,更多相關SpringBoot Lombok庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: