SpringBoot2.0(Lombok,SpringBoot统一返回封装)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一Lombok简介

​ java工程中我们要创建很多的java Bean。这些javaBean中都会写gettersetterequalshashCode和toString的模板代码这些代码都没啥技术含量。
​ 那么我们就是使用Lombok来自动生成这些代码通过注解的方式。提高我们的工作效率。
​ Lombok的原理JSR 269插件化注解处理。就是在编译生成字节码之前Lombok根据自己编写的注解处理器动态地修改 AST增加新的节点即Lombok自定义注解所需要生成的代码,最终生成JVM可执行的字节码Class文件。
什么是JSR 269?

JSR 269:  Pluggable Annotation Processing API
实现在Javac编译阶段利用“Annotation Processor”对自定义的注解进行预处理后生成真正在JVM上面执行的“Class文件

java反射技术的对比

  1. 使用Annotation Processing自定义注解是在编译阶段进行修改
  2. JDK的反射技术是在运行时动态修改
结论反射更加灵活一些但是带来的性能损耗更加大

二添加依赖

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

三Springboot统一返回封装

这种格式主要包含3部分
code状态码 由后端统一定义各种返回结果的状态码
message描述信息
data返回的数据例如列表数据

3.1创建一个工具包util和一个JsonData类

在这里插入图片描述
JsonData类

package com.demo.util;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor //会生成一个包含所有变量
@NoArgsConstructor //生成一个无参数的构造方法
public class JsonData {

    /**
     * 状态码 0 表示成功1表示处理中-1表示失败
     */
    private Integer code;
    /**
     * 数据
     */
    private Object data;
    /**
     * 描述
     */
    private String msg;

    // 成功传入数据
    public static JsonData buildSuccess() {
        return new JsonData(0, null, null);
    }

    // 成功传入数据
    public static JsonData buildSuccess(Object data) {
        return new JsonData(0, data, null);
    }

    // 失败传入描述信息
    public static JsonData buildError(String msg) {
        return new JsonData(-1, null, msg);
    }

    // 失败传入描述信息,状态码
    public static JsonData buildError(String msg, Integer code) {
        return new JsonData(code, null, msg);
    }
}

这个类写完就不用在实体类里写get和set方法

四示例实体类

在实体类上加@Data注释就可以不用写get和set方法
加注释@Data这个注释和写get和set方法效果一样

package com.demo.bean;


import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;

@Data
public class Passer {

    /**  */

    private Integer id ;
    /**  */

    private String passername ;
    /**  */

    private String passerage ;
    /**  */

    private String passersex ;

    @Version
    private Integer version;

    @TableLogic(value = "0",delval = "1")
    private Integer deleted;
}

五@Data注解

@Data, 定义一个干净的类增加此注解mvn compile查看字节码
作用于类上是以下注解的集合
@ToString
@EqualsAndHashCode
@Getter
@Setter
@RequiredArgsConstructor

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6