![](https://cdn.zimug.com/wx-zimug.png) ## 一、前置说明 ### 本节大纲 * 使用lombok插件的好处 * 如何安装lombok插件 * 使用lombok提高开发效率 ## 二、使用lombok插件的好处 我们在java开发过程中,经常会有一些常规性的,重复性的工作。比如: * 根据成员变量生成get和set方法 * 根据成员变量生成类的构造函数 * 重写toString()和hashCode方法 * 引入日志框架logFactory,用来打印日志 以上都是一些重复动作,模板代码。每次都手动生成既浪费时间,又增加了大量的冗余代码。我们可以使用lombok插件来解决这个问题。使我们的编码效率得到大幅度的提高! ## 三、如何安装lombok插件 笔者以InelliJ IDEA为例,安装lombok插件。打开 IDEA 的 File->Settings 面板,并选择 Plugins 选项,然后点击 “Browse repositories”。在搜索框输入”lombok”,结果中找到lombok点击install,然后重启 IDEA。 ![](https://img.kancloud.cn/45/d4/45d483570ca6807eae7de5e6c3ab3cd6_762x511.png) 我们还要在pom.xml里面加上如下依赖,插件生效。 ``` <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> ``` > 在Spring Boot项目里面不需要加入版本号,spring Boot父项目会代为管理。如果是其他项目,请自行添加版本号! ## 四、 使用lombok注解简化开发 ### 4.1 Data注解 在java类上使用@Data注解,将为我们在编译期自动生成 * 成员变量的get和set方法 * equals方法 * canEqual方法 * hashCode方法 * toString方法 ![](https://img.kancloud.cn/ab/0a/ab0a2c82558587327f06cca3f094d964_763x473.png) 上图左侧是使用lombok注解Data,右侧是java字节码class文件反编译结果 ### 4.2 Slf4j注解 将在编译期自动帮我们引入Logger日志常量,我们在代码中就直接使用log.info或log.debug打印日志即可。下图中红色代码就用Slf4j注解代替就可以了。 ![](https://img.kancloud.cn/d2/4f/d24f55de1112606f804e9bf6280b3be0_750x441.png) ### 4.3 Builder注解 在Java类上使用Builder注解之后,我们可以使用如下代码为对象属性赋值 ``` LombokPOJO lombokPOJO = LombokPOJO.builder() .name("kobe") .age(39) .build(); ``` ![](https://img.kancloud.cn/bd/a3/bda328a18d6acb36be7a3673f2f4122c_1384x862.png) ### 4.4 AllArgsConstructor注解 AllArgsConstructor注解将为我们在编译期自动生成:全参构造函数。 ![](https://img.kancloud.cn/f9/4f/f94f6763804e87144618e7c9cde0fd5a_1202x466.png) 有全参构造函数注解,自然就有无参构造函数注解:NoArgsConstructor注解。 lombok有非常多的好用的注解,这里给大家集中介绍几个经常会用到的。更多的用法参考github(插件安装图中,有github连接,上图中黄色区域)