Lombok主要是为了消除JavaBean中那些冗余的代码,通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往用来分类各种accessor和mutator的大量时间。

Lombok官网地址:http://projectlombok.org/

安装方法参见Github上的说明:https://github.com/mplushnikov/lombok-intellij-plugin

Lombok注解说明

  1. @Data:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于Pojo类十分有用
  2. @NonNull:给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE
  3. @CleanUp:自动生成try-finally这样的代码来关闭流
  4. @Getter(lazy=true):可以替代经典的Double Check Lock样板代码
  5. @Setter:注解在属性上;为属性提供 setting 方法
  6. @Getter:注解在属性上;为属性提供 getting 方法
  7. @Log4j:注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
  8. @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
  9. @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

示例:

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
38
39
40
41
@Data
@Log4j
public class User {
private String id = null;
private String name = null;
private String password = null;
private String workCode = null;
private String telephone = null;
private String email = null;
public User() {
}
/**
* create user from DyeResourceTools.jar
* @param userInfo
* @return
*/
public static User fromUserInfo(UserInfo userInfo) {
if(userInfo == null) {
log.warn("occur a null userInfo parameter on creating user.");
return null;
}
User user = new User();
user.setId(userInfo.getStrUserId());
user.setName(userInfo.getStrName());
user.setWorkCode(userInfo.getStrWorkCode());
user.setTelephone(userInfo.getStrTelephone());
user.setEmail(userInfo.getStrEmailAddress());
return user;
}
}

最后需要注意的是,在使用lombok注解的时候记得要导入lombok.jar 包到工程,如果使用的是Maven Project,要在pom.xml中添加依赖,并设置Maven为自动导入。