zoukankan      html  css  js  c++  java
  • SpringBoot整合lombok省略set和get方法

    一、lombok概述

    Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。就是说,将极大减少你的代码总量。

    作用:

    • 为Java POJO生成属性对应的getter,setter等
    • 为Java POJO生成builder构造器模式的实现
    • 为Java类自动添加其他重复性代码,比如日志记录的声明代码可以通过@Slf4j注解添加

    二、使用过lombok

    1. 添加依赖

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

    2. Idea安装lombok插件

    如果想让lombok生效我们还需要针对idea工具进行插件的安装。

    3. 编写一个实体类 User,使用@Data注解

    @Data
    public class User {  
       private String name;  
       private int age;
    }

    注意:lombok 的注解不能被继承。

    4. lombok的注解介绍

    • @NonNull : 让你不在担忧并且爱上NullPointerException
    • @CleanUp : 自动资源管理:不用再在finally中添加资源的close方法
    • @Setter/@Getter : 自动生成set和get方法
    • @ToString : 自动生成toString方法
    • @EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现
    • @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor:自动生成构造方法
    • @Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
    • @Value : 用于注解final类
    • @Builder : 产生复杂的构建器api类
    • @SneakyThrows : 异常处理(谨慎使用)
    • @Synchronized : 同步方法安全的转化。
    • @Getter(lazy=true) :懒加载。如果Bean的一个字段的初始化是代价比较高的操作,比如加载大量的数据;同时这个字段并不是必定使用的。那么使用懒加载机制,可以保证节省资源。懒加载机制,是对象初始化时,该字段并不会真正的初始化;而是第一次访问该字段时才进行初始化字段的操作。
    • @Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j

    5. 常用注解

    (1) @EqualsAndHashCode,@ToString 

    告诉Lombok来生成 equals, hashCode方法,toString方法在生成这些方法的时候lombok会使用所有的成员变量。

    (2) @AllArgsConstructor

    会自动创建一个包括所有成员的构造器。

    (3) @Getter/@Setter

    注解会为每一个标记的成员变量自动生成对应的方法。

    (4) @Buidler

    实例化这个类。

    @EqualsAndHashCode
    @ToString
    @AllArgsConstructor
    @Setter
    @Getter
    @Builder
    public class Student {
        private String stuName;
    
        private Integer stuAge;
    
        private String stuClass;
    
        private Integer stuNumber;
    }

    可以这样实例化:

    Student student = Student.builder()
          .stuName("张三")
          .stuAge(12)
          .stuClass("高三")
          .stuNumber(12222)
          .build();
    System.out.println(student);

    (5) @Data

    简单的来说所有所有的注解我们都可以使用一个注解完成,也就是@Data。

    我们在定义类的时候 只需要加一个 @Data 注解,其他的注解我们都不需要在添加就可以达到前面所说的所有功能。

    参考:https://www.cnblogs.com/zhangyinhua/p/8623018.html

  • 相关阅读:
    dfs手写栈模板
    Remember the Word
    Sockets
    Sanatorium
    Exams
    Cormen — The Best Friend Of a Man
    win 7 普通家庭版 装IIS
    [引]构造文法时表达式中算符优先级的问题
    Chart系列(二):数据绑定
    算法整理篇之:数据结构 | 数组(1)
  • 原文地址:https://www.cnblogs.com/myitnews/p/12386333.html
Copyright © 2011-2022 走看看