SpringBoot开发效率必备工具—lombok

        由于编码过程中,以上都是一些重复动作,模板代码。每次都手动生成既浪费时间,又增加了大量的冗余代码。我们可以使用lombok插件来解决这个问题。使我们的编码效率得到大幅度的提高!

一、安装 lombok

maven仓库官方地址:  Maven Repository: Search/Browse/Explore (mvnrepository.com)

SpringBoot开发效率必备工具—lombok_第1张图片

 以InelliJ IDEA为例,先要安装lombok插件,然以再引入依赖:

dependency>
   org.projectlombok
   lombok
   true

        SpringBoot项目里不需要加入版本号,springBoot父项目会代为管理。如果是其他项目请自行添加版本号!

二、使用lombok

应用:

  • @Data:根据成员变量生成get和set方法,@Data注解,将为我们在编译期自动生成:成员变量的get和set方法;equals方法;canEqual方法;hashCode方法;toString方法。
  • @AllArgsConstructor:根据成员变量生成类的构造函数,@AllArgsConstructor注解将为我们在编译期自动生成:全参构造函数,有全参构造函数注解,自然就有无参构造函数注解:NoArgsConstructor注解。
  • 重写toString()和hashCode方法。
  • @Slf4j 注解 : 引入日志框架logFactory,用来打印日志。
  • @Builder注解。在Java类上使用Builder注解之后,我们可以使用如下代码为对象属性赋值。

    LombokPOJO lombokPOJO = LombokPOJO.builder()
            .name("xiaobai")
            .age(3)
            .build();

SpringBoot开发效率必备工具—lombok_第2张图片

上图左侧是使用lombok注解Data,右侧是java字节码class文件反编译结果。

三、lombok优点和缺点

优点:

①、减少了样板代码:Lombok通过注解自动生成常见的Java类方法(如getter、setter、构造函数等),从而减少了编写样板代码的工作量。这可以提高开发效率,使代码更加简洁易读。

②、简化了数据对象的创建:使用@Data注解可以自动生成所有字段的getter和setter方法,并且还可以生成equals、hashCode和toString方法。这样,创建和维护数据对象变得更加容易。

③、支持链式调用:使用@Builder注解可以生成一个建造者模式的构造器,可以通过链式调用设置对象的属性。这种方式可以提高代码的可读性和可维护性。

缺点:

①、有侵入性 ;②、对高版本的JDK不兼容。

"Lombok显示出有入侵性"通常指的是Lombok在代码中产生的一种依赖关系。具体来说,当使用Lombok注解时,编译器会将这些注解解析为相应的代码,并插入到生成的字节码中。这就导致了对于使用Lombok的项目来说,Lombok成为了一个必要的构建依赖项。

这种依赖关系有时被认为是"入侵性"的,原因如下:

  1. 版本兼容性:Lombok与IDE或构建工具之间可能存在版本兼容性问题。如果IDE或构建工具没有正确支持或配置Lombok,可能会导致编译错误或其他问题。
  2. 项目可移植性:由于使用了Lombok的注解,项目变得依赖于Lombok库。这意味着如果将项目迁移到不支持Lombok的环境中,代码可能无法正常编译和工作。
  3. 阅读和理解代码的难度:由于Lombok自动生成了代码,源代码中实际执行的操作可能会被隐藏。这可能会导致阅读和理解代码的困难,特别是对不熟悉Lombok的开发人员来说。

        尽管Lombok有一些潜在的入侵性问题,但它仍然是广泛使用的Java开发工具,可以显著减少代码量并提高开发效率。在决定使用Lombok时,开发团队应该权衡其带来的便利性和潜在的风险,并确保正确配置和管理Lombok依赖。

你可能感兴趣的:(Java后端,spring,boot,后端,java,spring,学习方法,面试)