一.简介
Lombok是一个通过注解以达到减少代码的Java库,如通过注解的方式减少get,set方法,构造方法等。
二.注解介绍
Lombok提供注解方式来提高代码的简洁性,下面分别介绍每个方法的作用以及对应的代码
1.@Data
该注解作用于类上,相当于同时加上以下注@Setter@Getter,@ToString,
@EqualsAndHashCode。
2.@Getter@Setter
该注解作用于属性上,自动生成get,set方法。
3.@NonNull
该注解作用于属性上,用于快速判断是否为空,如果为空,则抛出java.lang.NullPointerException
4.@ToString,@NoArgsConstructor,@AllArgsConstructor,@EqualsAndHashCode
这些注解作用于类上,用法大家应该非常熟悉,但需要注意的是@ToString有多个属性可以进一步设置。
- callSuper 是否输出父类的toString方法,默认为false
- includeFieldNames 是否包含字段名称,默认为true
- exclude 排除生成tostring的字段
@EqualsAndHashCode有多个属性可以进一步设置。 - exclude 排除生成tostring的字段
- of 生成tostring的字段
5.@Slf4j
该注解作用于类上,用于输出日志。
6.@Synchronized
该注解作用于方法上,用于自动添加到同步机制,有趣的是,生成的代码并不是直接锁方法,而是锁代码块。
7.@Cleanup
该注解作用于属性上,注释可用于确保已分配的资源被释放,如IO的连接关闭。
public void testCleanUp() {
try {
@Cleanup
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(new byte[] {'Y','e','s'});
System.out.println(baos.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
三.使用
1.添加依赖
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
2.安装lombok插件,参照下面url安装,只需将mybatis改为lombok即可
https://blog.csdn.net/u010286027/article/details/85853659
3.代码示例
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Cart {
private Integer id;
private Integer userId;
private Integer productId;
private Integer quantity;
private Integer checked;
private Date createTime;
private Date updateTime;
}
@Slf4j
public class Slf4jTest {
public static void main(String[] args) {
//注意记录日志的对象是log
log.info("Current Time: {}", System.currentTimeMillis());
log.info("Current Time: " + System.currentTimeMillis());
log.info("Current Time: {}", System.currentTimeMillis());
log.trace("trace log");
log.warn("warn log");
log.debug("debug log");
log.info("info log");
log.error("error log");
}
}