1. Pom 文件引入 Lombok
在pom中添加如下所示的内容:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2. 添加 Lombok 插件
在IDEA中搜索插件,并安装。如下图所示:
3. Lombok介绍
lombok的注解介绍
@NonNull : 让你不在担忧并且爱上NullPointerException,
@CleanUp : 自动资源管理:不用再在finally中添加资源的close方法
@Setter/@Getter : 自动生成set和get方法
@ToString : 自动生成toString方法
@EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现
@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
自动生成构造方法
@Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
@Value : 用于注解final类
@Builder : 产生复杂的构建器api类
@SneakyThrows : 异常处理(谨慎使用)
@Synchronized : 同步方法安全的转化
@Getter(lazy=true) :
@Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j
推荐使用技巧
- 在 Bean / Entity 类上使用 @Data 注解。
- 需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。
- 注意:lombok 的注解不能被继承。
4. 使用
具体的使用方式如下:
// @Accessors(chain=true) :链式访问,该注解设置chain=true,生成setter方法返回this,代替了默认的返回void。
@Data
@Accessors(chain=true)
public class User {
private Integer id;
private String name;
private Integer age;
public static void main(String[] args) {
User user=new User().setAge(31).setName("pollyduan");
System.out.println(user);
}
}
// @Accessors(fluent = true) :与chain=true类似,区别在于getter和setter不带set和get前缀。
@Data
@Accessors(chain=true)
public class User {
private Integer id;
private String name;
private Integer age;
public static void main(String[] args) {
User user=new User().age(31).name("pollyduan");
System.out.println(user);
}
}
下面是实体类的测试:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String salt;
private Integer id;
private String name;
private String password;
}
//这里就可以直接使用get,set,toString(),HashCode(),无参,全参数等
调用如下:
@RequestMapping("/getUserById/{id}")
@ResponseBody
public User findById( @PathVariable String id){
User user = new User();
user.setId(Integer.parseInt(id));
user.setUsername("syw");
user.setPassword("666");
System.out.println(user);
User user2=new User(123,"yyy","sss","666");
System.out.println(user2);
return user;
}
结果如下
综上所述,Lombok解决了我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,自动生成的。就是说,将极大减少你的代码总量,但具体的使用还需要看所在项目中是不是所有人都是用了,如果单独使用的话,可能会造成在其他人的电脑中无法访问的情况。
全部评论