SpringBoot集成Lombok
前言
一、Lombok是什么?
- Lombok是一个插件,其主要用途是提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码,提高编码效率,使代码更简洁。
- Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。
- Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。
二、Lombok插件安装
- IDEA中在Settings–>Plugins,找到Lombok插件,install成功后,重新启动IDEA.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210203135822324.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x3ZDIzMDc5OTc2NjQ=,size_16,color_FFFFFF,t_70)
三、Lombok使用
1、pom.xml引入lombok依赖
<!-- ============lombok依赖=========== -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
<optional>true</optional>
</dependency>
2、Lombok注解引入效果
/**
* FileName: ProjectDemoDTO
* Author: Administrator
* Date: 2021/2/3 9:56
* Description:
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 描述
*/
package com.yangxf.si.modules.business.controller;
/**
* 〈一句话功能简述〉<br>
* 〈〉
*
* @author Administrator
* @create 2021/2/3
* @since 1.0.0
*/
public class ProjectDemoDTO {
private String name;
private String idNumber;
private String sex;
private Long birthday;
public ProjectDemoDTO(String name, String idNumber, String sex, Long birthday) {
this.name = name;
this.idNumber = idNumber;
this.sex = sex;
this.birthday = birthday;
}
public ProjectDemoDTO() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIdNumber() {
return idNumber;
}
public void setIdNumber(String idNumber) {
this.idNumber = idNumber;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Long getBirthday() {
return birthday;
}
public void setBirthday(Long birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "ProjectDemoDTO{" +
"name='" + name + '\'' +
", idNumber='" + idNumber + '\'' +
", sex='" + sex + '\'' +
", birthday=" + birthday +
'}';
}
}
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 〈一句话功能简述〉<br>
* 〈〉
*
* @author Administrator
* @create 2021/2/3
* @since 1.0.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProjectDemoDTO {
private String name;
private String idNumber;
private String sex;
private Long birthday;
}
2、Lombok常用注解
@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
@NonNull : 让你不在担忧并且爱上NullPointerException
@CleanUp : 自动资源管理:不用再在finally中添加资源的close方法