Java工具包——Lombok

目录

1. maven仓库手动导入依赖+注解

1.1  maven仓库引入依赖

1.2  在类上使用@Data注解

1.3  在属性上使用@Getter与@Setter注解

2. EditStarters插件+注解

2.1 安装EditStarters插件

2.2 在pom.xml中进行操作

2.3 在java对象类中使用注解

3. lombok工具使用结果查看

3.1 手动package

3.2 查看文件内容


在Spring项目中创建java对象,

如果使用手动生成getter、setter、toString等方法提供调用接口,

会导致代码修改成本与复杂度大大增加;

lombok是一个Java工具库,通过添加注解的方式简化了Java的开发;

接下来简单介绍lombok的使用方法;

使用lombok有两种方法:

(1)maven仓库手动导入依赖+注解;

(2)EditStarters插件+注解;

1. maven仓库手动导入依赖+注解

1.1  maven仓库引入依赖

链接如下:

https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.24https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.24icon-default.png?t=N7T8https://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面板中进行刷新:

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

        此时在对应的Controller中增加相应的获取属性的get方法,即使没有显式编写相关代码,但可见可以成功调用: (.getFrom()方法未标红报错)

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的业务逻辑,此处仅用于辅助展示lombok作用) 

 @Data注解就是lombok提供的通过注解自动生成属性的get与set方法,可避免修改接口属性导致需修改其对应的get与set方法造成的麻烦,同时也可以消除冗余代码;

1.3  在属性上使用@Getter与@Setter注解

@Data注解修饰类时,表示提供该类所有属性的get与set方法,这对于某些属性不希望被获取是不够灵活的,故而可以在属性上使用@Getter与@Setter注解,以实现面向属性生成get与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更细颗粒度的注解有:

注解

作用

@Getter自动添加getter方法
@Setter自动添加setter方法
@ToString自动添加toString方法
@EqualAndHashCode自动添加equals和hashCode方法
@NoArgsConstructor自动添加无参构造方法
@AllArgsConstructor自动添加全属性构造方法,顺序按照属性的定义顺序
@NonNull属性不能为null
@RequireArgsConstructor自动添加必须属性的构造方法,final+@Null的属性为必须

@Data =

@Getter + @Setter +@ToString +@ EqualAndHashCode

+@ RequireArgsConstructor + @ NoArgsConstructor;  

2. EditStarters插件+注解

2.1 安装EditStarters插件

安装完后重启IDEA方可生效

2.2 在pom.xml中进行操作

直接增添lombok标签即可;

注:1、勿忘刷新maven

2、如果URL错误,可更换为以下URL(选择Gitee):

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

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

 是没有版本标识的;

2.3 在java对象类中使用注解

注解使用方法同第一种方法,详见方法1的2和3步骤;

3. lombok工具使用结果查看

3.1 手动package

3.2 查看文件内容

文件内容如下:

//
// 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目录下,但该文件并不是字节码文件,而是经过idea反编译的;

  • 30
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值