实体类是项目中必然不会少的对象,最简单的组成包括,成员变量和方法(构造方法和get/set)。
无论是用eclipse还是idea开发,生成get/set都很简单,利用快捷键也不费力气。
如果想让代码看上去整洁,lombok是个不错的选择。
一、idea安装lombok插件
- ctrl+alt+s或者File-->Settings打开Settings设置面板
- 在搜索框中输入或者直接选择plugins
- 在plugins右侧面板的搜索框中输入“lombok”
- 点击install即可
二、在项目的pom.xml中添加依赖
maven方式
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
想要引入最新的jar包或者是Gradle方式引入又或者下载jar包的,可以去 mvnrepository 里面找。
三、遇到的问题
插件安装好了,依赖也引入了,但是在代码里面用XXX.getXXX()会报错
解决方法:将Enable annotation Processing打上对勾
第一次安装的时候也非常不理解为什么我引入了lombok的依赖还要安装插件,也是查了很多资料,以能使用为主,没有做过多的思考,百度也没有说为什么安装,有什么作用,不过github写出了使用方法(有idea和eclipse的安装说明)。
1、idea安装lombok插件的作用
为了编译通过,idea的插件针对的是底层
通俗一点:就是编译之后去添加get/set方法
引用别人的话就是(专业一点):编译得到的字节码文件中自动生成了getter和setter方法
2、依赖的作用
使用@Getter、@Setter………………这些注解
3、Enable Annotation Processing
字面意思:启用注解
四、使用
1、@Setter和@Getter不用再多余生成get/set方法,代码更加简洁
或者用@Data代替上面两个
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class TestEntity {
public String name;
public Integer age;
public Integer sex;
}
2、@AllArgsConstructor:所有成员变量的有参构造方法
@NoArgsConstructor:无参构造方法
有有参构造,就一定要有无参构造,具体为啥,因为踩过坑
3、@Slf4j :加日志
4、@Builder:这个注解特别好
2019-01-03更新:用这个注解得加上@NoArgsConstructor注解,不然会报错
No primary or default constructor found for class 全类名
平时new个对象是这样子的:
Admin1Entity admin1Entity = new Admin1Entity();
admin1Entity.pkid = "123213";
加了@Builder之后可以这样写
Admin1EntityBuilder builder = new Admin1EntityBuilder();
builder.pkid("1").qq("2").addressCity("北京");
或者
Admin1Entity aaa = Admin1Entity.builder().qq("1").password("3333").addressCity("北京").build();
5、@Accessors(chain = true)
加上这个注解,可以用下面的代码,个人感觉挺简洁
new CdrEntity().setUser(user).setSign(sign).setReqid(reqId).setOwner(owner).setTaskId(taskId)
五、深入了解lombok
想要更多的了解lombok可以移步到 深入理解 lombok 了解更多的原理。
idea官网对lombok插件的介绍:lombok-plugin
看到一个不错的原理介绍:原理