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


    一,Lombok简介

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

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

    java反射技术的对比:

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

    二,添加依赖

     		<dependency>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
            dependency>
    
    • 1
    • 2
    • 3
    • 4

    三,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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    这个类写完就不用在实体类里写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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    五,@Data注解

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

  • 相关阅读:
    深度学习基础之GFLOPS(2)
    MySQL事务基本操作(方式2)
    数据结构与算法——线性表的顺序存储
    想要糖尿病逆转,健康饮食必不可少
    20220910编译ITX-3588J的Buildroot的系统2b(编译Kernel)
    unity 接收和发送Udp消息
    网络安全笔记5——数字签名
    LeetCode
    JAVA NIO深入剖析
    新人学习笔记之(变量)
  • 原文地址:https://blog.csdn.net/H20031011/article/details/132857705