今天学习项目学到一个新工具,Lombok,这玩意是真的方便啊,减少了很多代码(其实并没有,后面说)。
先上链接
Lombok的官方地址:https://projectlombok.org/](https://projectlombok.org/
Lombok的Github地址:https://github.com/rzwitserloot/lombok
Lombok是什么
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。优点是,提高编码效率使代码更简洁,消除冗长代码。避免修改字段名字时忘记修改方法名。
Lombok的安装
引入Maven依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency>
在IEDA中安装Lombok插件
Lombok的使用
Lombok主要有以下注解
@Data 包含了@Getter @Setter @ToString @EqualsAndHashCode
@AllArgsConstructor 所有参数的构造方法
@NoArgsConstructor 无参构造方法
@Getter get方法
@EqualsAndHashCode(of = “id”) 重新hashCode of是根据id去重新,是一个数组类型,根据多个字段重写的话是{“id”,”name”}
@ToString(exclude = “updateTime”) 重新toString exclude的意思是toString中不包括updateTime这个字段
@SIf4j(使用logback日志框架,使用@SIf4j)
@Log4j(当项目使用log4j日志框架时使用)
我们之前写代码都是这样
public class Cart {
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
使用Lombok之后
@Getter
@Setter
public class Cart {
private Integer id;
}
代码简化了很多吧!看上去爽多了!
@SIf4j的使用
这里使用的是logback日志框架。如果是使用log4j日志框架则使用@Log4j。
@Slf4j //使用对应的名字是 log
public class XXXServiceImpl implements XXXService {
public void test(){
log.info("写入日志...");
}
}
验证Lombok
使用Lombok的注解后,那么在变异后是生成了相应的get set 等方法的。那么我们反编译验证一下。
推荐反编译工具,一加拿大程序员写的。http://jd.benow.ca/
直接打开编译后的class文件就可以了,比如如下图: