Lombok的官方介绍

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.

Lombok以简单的注解形式来简化java代码,提高开发人员的开发效率

lombok是一个编译级别的插件,它可以在项目编译的时候生成一些代码

1.为IntelliJ IDEA安装插件

file——>settings——>Plugins

SpringBoot 2.x 整合Lombok

 安装完后需要重启IntelliJ IDEA

2.添加依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.61</version>
        </dependency>

    </dependencies>

3.使用

常用注解

@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter :注解在属性上;为属性提供 setting 方法
@Setter :注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
@Cleanup : 可以关闭流
@Builder : 被注解的类加个构造者模式
@Synchronized : 加个同步锁
@SneakyThrows : 等同于try/catch 捕获异常
@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法

(1)@Data

@Data 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法

实体类

package com.abc.plus.entity;

import lombok.Data;

import java.util.Date;

@Data
public class ApiFiles {
    private Long id;
    private String name;
    private Integer size;
    private Integer status;
    private Date uploadTime;
    private String version;
}

测试

package com.abc.plus.controller;

import com.abc.plus.core.Result;
import com.abc.plus.core.SnowFlake;
import com.abc.plus.entity.ApiFiles;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

@RestController
public class demoController {
    private SnowFlake sn;
    @RequestMapping("/test")
    public Result test(){
        sn = new SnowFlake(1,1);
        ApiFiles file = new ApiFiles();
        file.setId(sn.nextId());
        int r= (int) (Math.random() * 50 + 500);
        file.setName("file"+String.valueOf(r));
        file.setSize(r);
        file.setStatus(1);
        Date currentTime = new Date();
        file.setUploadTime(currentTime);
        return Result.success(200,file);
    }
}

SnowFlake

package com.abc.plus.core;

import com.alibaba.fastjson.JSON;

/**
 * Created by Beibei on 19/02/22
 * API响应结果
 */
public class Result<T> {
    private int code;
    private String message;
    private T data;

    public Result setCode(Integer code) {
        this.code = code;
        return this;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public Result setMessage(String message) {
        this.message = message;
        return this;
    }

    public T getData() {
        return data;
    }

    public Result setData(T data) {
        this.data = data;
        return this;
    }

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }

    public static <T>  Result<T> fail(Integer code,T data) {
        Result<T> ret = new Result<T>();
        ret.setCode(code);
        ret.setData(data);
        return ret;
    }

    public static <T>  Result<T> failMessage(Integer code,String msg) {
        Result<T> ret = new Result<T>();
        ret.setCode(code);
        ret.setMessage(msg);
        return ret;
    }
    public static <T>  Result<T> successMessage(Integer code,String msg) {
        Result<T> ret = new Result<T>();
        ret.setCode(code);
        ret.setMessage(msg);
        return ret;
    }

    public static <T> Result<T> success(Integer code,T data) {
        Result<T> ret = new Result<T>();
        ret.setCode(code);
        ret.setData(data);
        return ret;
    }

    public static <T> Result<T> success(Integer code,T data,String msg) {
        Result<T> ret = new Result<T>();
        ret.setCode(code);
        ret.setData(data);
        ret.setMessage(msg);
        return ret;
    }

}
View Code

相关文章:

  • 2022-12-23
  • 2018-12-24
  • 2021-09-21
  • 2021-06-07
  • 2021-06-18
  • 2021-04-05
  • 2021-04-11
  • 2022-12-23
猜你喜欢
  • 2021-08-25
  • 2022-12-23
  • 2020-01-08
  • 2021-08-31
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案