1.概述
Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不要再写另一个getter或equals方法,只要有一个注释,你的类就有一个功能齐全的构建器,自动记录变量等等。
在Java中,封装是一个非常好的机制,最常见的封装莫过于get,set方法了,无论是Intellij idea 还是Eclipse,都提供了快速生成get,set方法的快捷键,使用起来很是方便,但是,我们还可以通过Lombok实现更加便捷的操作。
2.下载配置
想在开发过程中使用Lombok,首先要在项目中添加对应的依赖:
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
然后在插件管理中下载Lombok插件:

3.使用
Lombok提供注解方式来提高代码的简洁性,常用注解有:
@Data:相当于同时加上以下注解@Setter @Getter,@ToString,@EqualsAndHashCode等注解@Setter/@Getter:自动生成get,set方法.@NonNull:快速判断是否为空,如果为空,则抛出java.lang.NullPointerException@Synchronized:自动添加到同步机制,要注意的是,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上@ToString:自动生成toString方法,同时其可以设置多个属性- callSuper 是否输出父类的toString方法,默认为false
- includeFieldNames 是否包含字段名称,默认为true
- exclude 排除生成tostring的字段
@EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode。@Cleanup:可用于确保已分配的资源被释放,如IO的连接关闭。@SneakyThrows:将当前方法抛出的异常,包装成RuntimeException,骗过编译器,使得调用点可以不用显示处理异常信息。
我们在当前项目结构中创建pojo目录,存放我们的数据模型代码User类:
package com.study.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* POJO写法说明:
* 1.必须有get/set方法
* 2.必须实现序列化接口 数据流传输/socket通讯
*
* 注解说明:
* @Data 自动生成get/set/toString/equals/hashcode等方法
* @Accessors(chain = true) 重写了Set方法..
*/
@Data
@Accessors(chain = true)
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
public class User implements Serializable {
private Integer id;
private String name;
private Integer age;
private String sex;
/* public void setId(Integer id){
this.id = id;
}
public User setId(Integer id){
this.id = id;
//this 代表当前对象 运行期有效
return this;
}*/
}
@Accessors(chain = true)注解可以以下列方式重写set方法,实现后续链式加载的功能:
public User setId(Integer id){
this.id = id;
//this 代表当前对象 运行期有效
return this;
}
使用链式加载可以方便我们的操作,对一个对象进行赋值时,只写一个变量即可:
package com.study;
import com.study.pojo.User;
public class SpringbootDemo1ApplicationTests {
public void testLombok(){
User user = new User();
user.setId(1).setAge(11).setName("Lombok").setSex("男");
}
}
1万+




被折叠的 条评论
为什么被折叠?



