欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java工具包之Lombok使用

 更新時(shí)間:2024年09月05日 10:30:16   作者:_周游  
這篇文章主要介紹了Java工具包之Lombok使用,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在Spring項(xiàng)目中創(chuàng)建java對象,如果使用手動(dòng)生成getter、setter、toString等方法提供調(diào)用接口,會(huì)導(dǎo)致代碼修改成本與復(fù)雜度大大增加;

lombok是一個(gè)Java工具庫,通過添加注解的方式簡化了Java的開發(fā);

接下來簡單介紹lombok的使用方法;

使用lombok有兩種方法:

(1)maven倉庫手動(dòng)導(dǎo)入依賴+注解;

(2)EditStarters插件+注解;

1. maven倉庫手動(dòng)導(dǎo)入依賴+注解

1.1 maven倉庫引入依賴

鏈接如下:

https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.24

copy至pom.xml文件中即可:

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.24</version>
    <scope>provided</scope>
</dependency>

注:勿忘在maven面板中進(jìn)行刷新:

1.2 在類上使用@Data注解

在java類上增加@Data注解:

package com.example.demo.controller;

import lombok.Data;

import java.util.Date;

@Data
public class MessageInfo {
    private String from;
    private String to;
    private String message;
    private Date CreateTime;
}

此時(shí)在對應(yīng)的Controller中增加相應(yīng)的獲取屬性的get方法,即使沒有顯式編寫相關(guān)代碼,但可見可以成功調(diào)用: (.getFrom()方法未標(biāo)紅報(bào)錯(cuò))

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RequestMapping("/message")
@RestController
public class MessageController {
    @RequestMapping("/publish")
    public Boolean publishMessage(MessageInfo messageInfo){
        String from = messageInfo.getFrom();
        return false;
    }
    @RequestMapping("/getMessageList")
    public List<MessageInfo> getMessageList(){
        return null;
    }
}

(請忽略該controller的業(yè)務(wù)邏輯,此處僅用于輔助展示lombok作用)

@Data注解就是lombok提供的通過注解自動(dòng)生成屬性的get與set方法,可避免修改接口屬性導(dǎo)致需修改其對應(yīng)的get與set方法造成的麻煩,同時(shí)也可以消除冗余代碼;

1.3 在屬性上使用@Getter與@Setter注解

@Data注解修飾類時(shí),表示提供該類所有屬性的get與set方法,這對于某些屬性不希望被獲取是不夠靈活的,故而可以在屬性上使用@Getter與@Setter注解,以實(shí)現(xiàn)面向?qū)傩陨蒰et與set方法:

package com.example.demo2.controller;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

@ToString
public class MessageInfo {
    @Getter @Setter
    private String from;
    @Getter @Setter
    private String to;
    private String message;
    private Date CreateTime;
}

以上代碼的含義為:屬性from支持獲取與寫入,to支持獲取;

注:附lombok相較于@Data更細(xì)顆粒度的注解有:

注解

作用

@Getter自動(dòng)添加getter方法
@Setter自動(dòng)添加setter方法
@ToString自動(dòng)添加toString方法
@EqualAndHashCode自動(dòng)添加equals和hashCode方法
@NoArgsConstructor自動(dòng)添加無參構(gòu)造方法
@AllArgsConstructor自動(dòng)添加全屬性構(gòu)造方法,順序按照屬性的定義順序
@NonNull屬性不能為null
@RequireArgsConstructor自動(dòng)添加必須屬性的構(gòu)造方法,final+@Null的屬性為必須
@Data =
@Getter + @Setter +@ToString +@ EqualAndHashCode
+@ RequireArgsConstructor + @ NoArgsConstructor;

2. EditStarters插件+注解

2.1 安裝EditStarters插件

安裝完后重啟IDEA方可生效

2.2 在pom.xml中進(jìn)行操作

直接增添lombok標(biāo)簽即可;

注:

  • 1、勿忘刷新maven;
  • 2、如果URL錯(cuò)誤,可更換為以下URL(選擇Gitee):

3、使用此方法生成的dependency如下:

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

是沒有版本標(biāo)識(shí)的;

2.3 在java對象類中使用注解

注解使用方法同第一種方法,詳見方法1的2和3步驟;

3. lombok工具使用結(jié)果查看

3.1 手動(dòng)package

3.2 查看文件內(nèi)容

文件內(nèi)容如下:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.example.demo2.controller;

import java.util.Date;

public class MessageInfo {
    private String from;
    private String to;
    private String message;
    private Date CreateTime;

    public MessageInfo() {
    }

    public String toString() {
        return "MessageInfo(from=" + this.getFrom() + ", to=" + this.getTo() + ", message=" + this.message + ", CreateTime=" + this.CreateTime + ")";
    }

    public String getFrom() {
        return this.from;
    }

    public void setFrom(String from) {
        this.from = from;
    }

    public String getTo() {
        return this.to;
    }

    public void setTo(String to) {
        this.to = to;
    }
}

對比原始文件:

package com.example.demo2.controller;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

@ToString
public class MessageInfo {
    @Getter @Setter
    private String from;
    @Getter @Setter
    private String to;
    private String message;
    private Date CreateTime;
}

可見lombok在編譯階段生成了部分代碼;

注:此處雖然處于class目錄下,但該文件并不是字節(jié)碼文件,而是經(jīng)過idea反編譯的;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論