Lombok插件安装(IDEA)及配置jar包使用详解


Posted in Python onNovember 04, 2020

点击进入Lombok官网下载Lombok jar包

使用Lombok可能需要注意的地方

(1)、当你的IDE是Idea时,要注意你的Idea是支持Lombok的,如果不支持请更换高版本尝试(这里采用2018 3.3)。

(2)、在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide类同)。

(3)、参数的处理往往都是根据项目需求来进行,请妥善处理参数。

(4)、如果你无法访问Lombok官网,你可以从这篇博文中将Maven坐标照着自己打进去,或者你也可以访问Maven的中央仓库搜索Lombok,将Maven坐标复制进去即可。

1、Lombok简介

Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。

Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString等方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。

使用Lombok的原因:

根据Lombok的使用规则,如果想要使用Lombok就需要删除在项目中(JavaBean)存在的已经生成的getter方法setter方法以及equals和hash方法,当然Lombok也提供了对打印日志的处理。这样在使用Lombok以后就会大大减少项目中的代码量,同时由于Lombok有自动修改的功能,这也提供了项目中代码的执行效率。

综上所述,使用Lombok的两点主要原因就是:

(1)、简化冗余的JavaBean代码。

(2)、大大提高JavaBean中方法的执行效率。

2、IDEA中安装Lombok插件

选择【File】-> 【Settings】->【Plugins】 ?> 输入Lombok,按回车键进行搜索,单击【Install】进行安装,安装完成后点击【Apply】和【OK】,然后重启IDEA即可安装成功。

注意:在重启前建议勾选结开启【Annotation Processors】下的【Enable annotation processing】(Ctrl+Shift+A键,输入Annotation Processors回车搜索即可找到该选项)。

Lombok插件安装(IDEA)及配置jar包使用详解

Lombok插件安装(IDEA)及配置jar包使用详解

3、使用LomBok

在Lombok的官网有一个install选项,我们点开它会看到多种安装方式,可以根据自己的项目需求来选择使用哪种方式,这里以Maven为例:

点击Maven会看到一组坐标:

Lombok插件安装(IDEA)及配置jar包使用详解

根据它的提示我们将这一组坐标添加到我们的pom文件中:

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.4</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

添加进去以后点击import change,等待Idea把jar包下载完就可以在项目中使用了。

4、Lombok常用注解详解

@Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;

@getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;

@setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;

@NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;

@AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;

@ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;

@EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;

@Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

@Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):

@ToString(exclude="column")

意义:排除column列所对应的元素,即在生成toString方法时不包含column参数;

@ToString(exclude={"column1","column2"})

意义:排除多个column列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成toString方法时不包含多个column参数;

@ToString(of="column")

意义:只生成包含column列所对应的元素的参数的toString方法,即在生成toString方法时只包含column参数;;

@ToString(of={"column1","column2"})

意义:只生成包含多个column列所对应的元素的参数的toString方法,其中间用英文状态下的逗号进行分割,即在生成toString方法时只包含多个column参数;

5、示例代码(仅简单举一个使用例子)

不使用Lombok(传统方法)

package com.user;

public class UserInfo {

  private String userid;
  private String username;
  private String userpass;
  private String userphone;
  private String useremail;
  private String usercard;
  private String useraddress;

  @Override
  public String toString() {
    return "UserInfo{" +
        "userid='" + userid + '\'' +
        ", username='" + username + '\'' +
        ", userpass='" + userpass + '\'' +
        ", userphone='" + userphone + '\'' +
        ", useremail='" + useremail + '\'' +
        ", usercard='" + usercard + '\'' +
        ", useraddress='" + useraddress + '\'' +
        '}';
  }

  public String getUserid() {
    return userid;
  }

  public void setUserid(String userid) {
    this.userid = userid;
  }

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public String getUserpass() {
    return userpass;
  }

  public void setUserpass(String userpass) {
    this.userpass = userpass;
  }

  public String getUserphone() {
    return userphone;
  }

  public void setUserphone(String userphone) {
    this.userphone = userphone;
  }

  public String getUseremail() {
    return useremail;
  }

  public void setUseremail(String useremail) {
    this.useremail = useremail;
  }

  public String getUsercard() {
    return usercard;
  }

  public void setUsercard(String usercard) {
    this.usercard = usercard;
  }

  public String getUseraddress() {
    return useraddress;
  }

  public void setUseraddress(String useraddress) {
    this.useraddress = useraddress;
  }

}

使用Lombok

package com.user;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public class UserInfo {

  private String userid;
  private String username;
  private String userpass;
  private String userphone;
  private String useremail;
  private String usercard;
  private String useraddress;

}

只给单个参数添加

package com.user;

import lombok.Getter;
import lombok.Setter;

public class UserInfo {

  @Getter@Setter private String userid;
  private String username;
  private String userpass;
  private String userphone;
  private String useremail;
  private String usercard;
  private String useraddress;

}

到此这篇关于Lombok插件安装(IDEA)及配置jar包使用详解的文章就介绍到这了,更多相关Lombok插件安装使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python 3中实现类型检查器的简单方法
Jul 03 Python
Python装饰器基础详解
Mar 09 Python
Python Django使用forms来实现评论功能
Aug 17 Python
python机器学习之决策树分类详解
Dec 20 Python
python中requests和https使用简单示例
Jan 18 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
Django Rest framework认证组件详细用法
Jul 25 Python
Python模块常用四种安装方式
Oct 20 Python
pycharm 实现调试窗口恢复
Feb 05 Python
pycharm部署django项目到云服务器的详细流程
Jun 29 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
基于OpenCV的路面质量检测的实现
Nov 04 #Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 #Python
python归并排序算法过程实例讲解
Nov 04 #Python
Numpy数组的广播机制的实现
Nov 03 #Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 #Python
Python os库常用操作代码汇总
Nov 03 #Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 #Python
You might like
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
php二分查找二种实现示例
2014/03/12 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中执行shell命令的几个方法小结
2014/09/18 Python
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
Django实现组合搜索的方法示例
2018/01/23 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python实现猜单词小游戏
2020/05/22 Python
详解如何设置Python环境变量?
2019/05/13 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
pip install命令安装扩展库整理
2021/03/02 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
环保公益策划方案
2014/08/15 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
关于长城的导游词
2015/01/30 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript