Idea下lombok安装和使用

IDEA下lombok安装和使用

  项目中经常会有Bean或者Entity,需要构造get、set、toString、equals等方法, 使用lombok注解的方式,就不需要手动编写或使用其他工具生成get/set等方法,很大程度上减少了代码量,而且减少了代码维护的负担。
常用的注解有@Setter,@Getter,@ToString,@NotNull,@EqualsAndHashCode,@Data等。

lombok 的安装

打开idea的设置Preferences,选择Plugins在Browse Repositories中搜索lombok

step 1

修改 Preferences | Build, Execution, Deployment | Compiler | Java Compiler 的配置如下:

step 2

设置 Preferences | Build, Execution, Deployment | Compiler | Annotation Processors 的配置为:

step 3

lombok 的使用

项目中添加Lombok的jar包依赖

gradle

1
2
3

compile 'org.projectlombok:lombok:1.18.2'
annotationProcessor 'org.projectlombok:lombok:1.18.2'

maven

1
2
3
4
5
6
7

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

如下实体类 User.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.persistence.*;

/**
* @author zhangl
* @since 2018/11/7
*/
@Data
@Entity
@Table(name="customer")
@ToString
@Getter
@Setter
@EqualsAndHashCode(callSuper = false)
@ApiModel
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("ID")
private Integer id;
@ApiModelProperty("用户名")
private String name;
@ApiModelProperty("年龄")
private long age;
@ApiModelProperty("性别")
private String gender;

}

测试类 UserTest.java 测试类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

import lombok.extern.java.Log;

/**
* @author zhangl
* @since 2018/11/7
*/
@Log
public class UserTest{

public static void main(String[] args) {

User user1 = new User();
user1.setId(1);
user1.setName("小明");
user1.setAge(20);
user1.setGender("男");

System.out.println(user1.toString());

User user2 = new User();
user2.setId(2);
user2.setName("小红");
user2.setAge(18);
user2.setGender("女");

System.out.println(user2.toString());

log.info("Lombok log info:" + user1.equals(user2));
}
}

运行结果

1
2
3
4
5

User(id=1, name=小明, age=20, gender=男)
User(id=2, name=小红, age=18, gender=女)

INFO: Lombok log info:false
0%