springboot集成lombok,springboot使用lombok

  springboot集成lombok,springboot使用lombok

  00-1010龙目岛2。Lombok注释失败原因集成流程1。介绍Lombok依赖关系:2。安装Lombok插件的优缺点(可能出现的问题就是解决方案)

  

目录

Lombok可以用简单注释的形式简化java代码,从而提高开发者的开发效率。它是一个优秀的Java代码库,采用了一种机会主义的语法糖,简化了Java的编码,提供了一种精简Java代码的方法,但Lombok不是一个标准的Java库。

 

  在web开发过程中经常要编写的Java类中加入相应的getter/setter、constructor、equals等方法是需要时间的。当属性很多的时候,会出现大量的getter/setter方法,这些方法冗长且不太专业。一旦修改了属性,就很容易忘记修改相应的方法。

  官方网站:龙目岛项目

  1.龙目普通音符

  批注作用于类上的@Data批注;提供了类的所有属性的获取和设置方法,在属性上也提供了equals、canEqual、hashCode、toString方法的@Setter注释;在属性上为属性提供设置方法@Setter批注;为类上的属性提供getting method @Log4j批注;log4j日志对象@NoArgsConstructor为类提供了一个名为log的属性,在类上做了注释;为类上的类@AllArgsConstructor批注提供无参数构造函数;为了给类@Cleanup :提供一个全参数构造方法来关闭流@Builder,带注释的类添加了构造函数mode @ Synchronized synchron ization lock @ sneaky throws捕捉异常,这类似于try/catch捕捉异常@NonNull。在参数中加入这个注释,当参数为空时会抛出空指针异常@Value注释类似于@Data。默认情况下,所有成员变量都被定义为私有最终修饰,不生成set方法。

  00-1010 POM . XML引入Lombok依赖项后,安装Lombok插件需要重启IDEA才能生效。

  

Lombok

 

  00-1010复制以下代码插入pom.xml,等待maven warehouse自动下载安装依赖项。如果没有设置自动打包指南,请单击手动导入。

  !-导入lombok pepper驱动程序依赖项以生成get/set和其他方法依赖项-依赖项groupIdorg.projectlombok/groupId artifactildlombok/artifactid!-option true/optional-version 1 . 18 . 12/version scope provided/scope!-自动生成带参数和不带参数/依赖项的构造

  00-1010在IDEA中点击文件-"设置-"插件-"搜索Lombok安装插件,然后重启IDEA;

  3.使用Lombok为属性生成getter/setter和其他方法的代码示例。

  形容词(adjective的缩写)实体类不是用Lombok写的(程序又肥又丑)

  使用IDE附带的快捷键来自动生成getter/setter方法:

  包com . dvms . entity;/* *文件名: Anglerecord *创建者: CJW *创建时间:2020/6/6 14336040 *描述3360 record */public class record { private string time;私有字符串设备;私有字符串状态;公共资源

  cord(String time, String device, String state) { this.time = time; this.device = device; this.state = state; } public Record() { } public String getTime() { return this.time; } public String getDevice() { return this.device; } public String getState() { return this.state; } public Record setTime(String time) { this.time = time; return this; } public Record setDevice(String device) { this.device = device; return this; } public Record setState(String state) { this.state = state; return this; } public boolean equals(final Object o) { if (o == this) return true; if (!(o instanceof Record)) return false; final Record other = (Record) o; if (!other.canEqual((Object) this)) return false; final Object this$time = this.getTime(); final Object other$time = other.getTime(); if (this$time == null ? other$time != null : !this$time.equals(other$time)) return false; final Object this$device = this.getDevice(); final Object other$device = other.getDevice(); if (this$device == null ? other$device != null : !this$device.equals(other$device)) return false; final Object this$state = this.getState(); final Object other$state = other.getState(); if (this$state == null ? other$state != null : !this$state.equals(other$state)) return false; return true; } protected boolean canEqual(final Object other) { return other instanceof Record; } public int hashCode() { final int PRIME = 59; int result = 1; final Object $time = this.getTime(); result = result * PRIME + ($time == null ? 43 : $time.hashCode()); final Object $device = this.getDevice(); result = result * PRIME + ($device == null ? 43 : $device.hashCode()); final Object $state = this.getState(); result = result * PRIME + ($state == null ? 43 : $state.hashCode()); return result; } public String toString() { return "Record(time=" + this.getTime() + ", device=" + this.getDevice() + ", state=" + this.getState() + ")"; }}b.引入Lombok生成方法(程序苗条、看着很舒服)

  可自己根据需求手动增添注解,也可以通过右键-》Refactor-》Lomok-》

  

 

  

package com.dvms.entity;/* *文件名: Anglerecord *创建者: CJW *创建时间:2020/6/6 14:40 *描述: 记录 */import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;import lombok.experimental.Accessors;@Data@ToString@AllArgsConstructor@NoArgsConstructor@Accessors(chain = true) //链式调用public class Record { private String time; private String device; private String state;}

 

  

优点与缺点(可能出现的问题即解决方法)

优点:Lombok能通过注解的方式,在编译时自动为属性生成getter/setter、equals和toString等方法,省去了手动重建这些代码的麻烦,使程序实体类(entity/pojo)代码看起来更‘苗条’、更有逼格。

 

  缺点(可能出现的问题):如果是个人开发,可能出现如下问题:

  1.Lombok目前支持JDK1.8,升级JDK版本后可能失效,解决方法:a.通过IDE自带的快捷键Alt+Insert生成getter/setter,equals,hashCode,toString以及构造器等方法;

  

 

  b.使用DeLombok工具生成上述这些方法,在最新版本中已包含DeLombok。右键选择Refactored->DeLombok:

  

 

  或者使用一个命令:

  

java -jar lombok.jar delombok src -d src-delomboked

把 Lombok 注解实现的类文件转换为不使用 Lombok 的 Java 源文件。

 

  2.Lombok隐藏了JavaBean封装的细节,程序看着简洁但是可读性差。此外尽量不要使用使用这个注解@AllArgsConstructor,该注解提供一个巨型构造器,使外界有机会在初始化对象时修改类中所有的属性是非常不安全的,毕竟Java类中对象的某些属性不应被修改。同时,如果某个Java类中有好多个属性,那么Lombok会注入好多个参数的构造器到Java类中,而构造器参数的顺序完全由Lombok所控制。

  3.使用Lombok来编写Javabean代码后,其余依赖此javabean的其他代码都需要引入Lombok依赖,代码耦合度上升。同时,还需要在IDE中安装Lombok的插件。

  4.如果是协同开发,则需要注意如下问题:当我们的程序代码中引入了Lombok插件,其他人也必须去下载、引入Lombok插件,否则Java代码可能无法正常运行。

  到此这篇关于SpringBoot整合Lombok及常见问题解决的文章就介绍到这了,更多相关SpringBoot整合Lombok内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: