Lombok是一个第三库,可以基于lombok中提供的API在程序编译时自动织入一些属性或相关方法,例如省略pojo类中set/get/toString等方法的编写,我们写的java程序可以在编译时,自动将这些方法添加到.class文件中,其应用步骤如下:
第一步:添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
第二步:在pom中添加依赖,并保存后,在Maven Dependencies中找到lombok-xxx.jar的具体位置
第三步:打开操作系统命令行客户端,并切换到第二步中找到的lombok-xxx.jar文件所在的目录,利用java -jar指令启动lombok插件
点击Specify location 选择SpringToolSuite4.exe,进行安装
安装好之后,lombok.jar会默认创建在sts软件的根目录
安装成功后重启sts工具即可
假如安装成功以后再次启动sts,此时无法启动,可能与STS所在目录有关系,可以将安装目录下的lombok.jar文件拷出到特定目录,然后修改SpringToolSuite4.ini文件的最后一行的lombok.jar路径即可,同时在配置文件中也不能有空格
== Lombok主要常用的注解==有:@Data,@getter,@setter,@NoArgsConstructor,@AllArgsConstructor,@ToString,@EqualsAndHashCode,@Slf4j,@Log4j。我们一个一个来看:
@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参数;
@Accessors(chain=true)
链式加载
示例:
package com.jt.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data //set/get/toString/equal等操作
@Accessors(chain=true) //开启链接式加载规则
@NoArgsConstructor //无参构造
@AllArgsConstructor //添加参数构造时,最好添加无参构造
public class User {
private Integer id;
private String name;
private Integer age;
private String sex;
// //get/set方法
// public Integer getId() {
// return id;
// }
// public void setId(Integer id) {
// this.id = id;
// }
// public String getName() {
// return name;
// }
// public void setName(String name) {
// this.name = name;
// }
// public Integer getAge() {
// return age;
// }
// public void setAge(Integer age) {
// this.age = age;
// }
// public String getSex() {
// return sex;
// }
// public void setSex(String sex) {
// this.sex = sex;
// }
//
// //无参构造
// public User() {}
// //有参构造
// public User(Integer id, String name, Integer age, String sex) {
// super();
// this.id = id;
// this.name = name;
// this.age = age;
// this.sex = sex;
// }
// //toString
// @Override
// public String toString() {
// return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
// }
//
//
}
问题:如果将项目发布到服务器中(Linux系统),是否需要在Linux中安装lombok工具插件呢?
答案: 不需要.
因为STS加载LOMBOK的插件,在程序将.java文件编译.class文件时会动态的生成get/set等方法.并且保存到.class文件中.
而Linux系统中运行的是项目的jar包文件(将.class文件打包).所有程序无需安装LomBok.