一、概述
在编程上,Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。简而言之,一句话就是:通过简单的注解来精简代码达到消除冗长代码的目的。
那么它的适用场景是什么呢,当我们一个JavaBean中存在很多属性时,需求的表结构突然变了,有几个属性的类型改了,这时我们就需要重写get,set方法和构造方法,虽然也有快捷键可以生成,但是毕竟还是需要改好几处。所以这时我们如果使用了Lombok,只需要改一行即可,其他的都由注解在代码编译的时候动态生成。
二、使用(以eclipse为例)
我们首先创建Maven工程,导入pom坐标。
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
</dependencies>
然后创建JavaBean。
import java.io.Serializable;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
@SuppressWarnings("serial")
@NoArgsConstructor // 空参
@Data // get set方法
@ToString//toString方法
@Accessors(chain = true) // 链式风格访问
public class Dept implements Serializable {//记得实现序列化接口
private Long deptno;// 主键
private String dname;// 部门名称
private String db_source;// 来自那个数据库,微服务架构一个服务对应一个数据库,同一个信息存储到不同数据库
public Dept(String dname) {
super();
this.dname = dname;
}
public static void main(String[] args) {
Dept dept = new Dept();
dept.setDname("Java开发").setDeptno(1L).setDb_source("mysql");
System.out.println(dept.toString());
}
}
运行结果:
三、常用注解:
@Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter 使用方法同上,区别在于生成的是getter方法。
@ToString 注解在类,添加toString方法。
@EqualsAndHashCode 注解在类,生成hashCode和equals方法。
@NoArgsConstructor 注解在类,生成无参的构造方法。
@RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
@Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);
喜欢的朋友点个关注再走呗~~