Mybatis之Lombok

Mybatis

9、Lombok

9.1、简介

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

  • Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

  • Project Lombok 是一个 Java 库,可自动插入您的编辑器并构建工具,为您的 Java 增添趣味。

  • 永远不要再编写另一个 getter 或 equals 方法,通过一个注释,您的类就有一个功能齐全的构建器,自动化您的日志变量等等。

  • Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的Java模型对象(POJO)。在开发环境中使用Lombok插件后,Java开发人员可以节省出重复构建,诸如hashCode和equals这样的方法以及各种业务对象模型的accessor和ToString等方法的大量时间。对于这些方法,它能够在编译源代码期间自动帮我们生成这些方法,并没有如反射那样降低程序的性能。

9.2、安装步骤

  • 在IDEA中安装Lombok插件!

  • 在项目中导入lombok的jar包。

  • <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
    </dependency>
    

9,3、使用步骤

  • @Getter and @Setter
    @FieldNameConstants
    @ToString
    @EqualsAndHashCode
    @AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
    @Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog
    @Data
    @Builder
    @SuperBuilder
    @Singular
    @Delegate
    @Value
    @Accessors
    @Wither
    @With
    @SneakyThrows
    @val
    @var
    experimental @var
    @UtilityClass
    
  • @Data

    • 无参构造,get、set、tostring、hashcode,equals。
  • @AllArgsConstructor

    • 有参构造方法
  • @NoArgsConstructor

    • 无参构造方法
  • @ToString

  • @Getter and @Setter

    • import lombok.Data;
      //实体类
      @NoArgsConstructor
      @AllArgsConstructor
      @Data
      @ToString
      public class User {
          private int id;
          private String name;
          private String pwd;
      }
      

9.4、Lombok常用注解说明

  • @NonNull:用在方法参数前,会自动对该参数进行非空校验,为空抛出NPE。(NullPointerException)
  • @Cleanup:自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出前会清理资源,生成try-finally的代码关闭流。
  • @Getter/@Setter:用在属性上,不用自己手写setter和getter方法,还可指定访问范围。
  • @ToString:用在类,可以自动覆写toString方法。
  • @EqualsAndHashCode:用在类上,自动生成equals方法和hashCode方法。
  • @NoArgSConstructor,@RequiredArgsConstructor and@AllArgsConstructor:用在类上,自动生成无参构造和使用所有参数的有参构造函数。
  • @Data:用在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对POJO类十分有用。
  • @Value:用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法。
  • @SneakyThrows:自动抛受检异常,而无需显式在方法上使用throws语句。
  • @Synchronized:用在方法上,将方法声明为同步的,并自动加锁。
  • @Getter(lazy=true):可以替代经典的Double Check Lock样板代码。

9.5、Lombok的优缺点

  • 优点:
    • 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率。
    • 让代码变得简洁,不用过多的去关注相应的方法。
    • 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等。
  • 缺点:
  • 不支持多种参数构造器的重载。
  • 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度。
posted @ 2021-11-28 23:54  JCooling  阅读(73)  评论(0)    收藏  举报