lombok简介使用
lombok官方站点:https://www.projectlombok.org/
Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。
1、Lombok中的注解
1.1、@Data
@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
1.2、@Getter & @Setter
如果觉得@Data太过残暴(因为@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性)不够精细,可以使用@Getter/@Setter注解,此注解在属性上,可以为相应的属性自动生成Getter/Setter方法。
1.3、 @NonNull
该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。
1.4、@Cleanup
该注解能帮助我们自动调用close()方法,很大的简化了代码。
1.5、@EqualsAndHashCode
默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。
1.6、@ToString
类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。
1.7、@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。
2、如何使用
使用Lombok需要两方面的工作,
第一个是项目,需要添加依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
第二个工作是编译器,需要支持Lombok,拿idea举例子,需要添加Lombok的插件。
file->settings->plugins->install jetBrains plugins
搜索 lombok,点击install,之后按照提示,点击重新启动即可。
3、Lombok和javaDoc的矛盾
使用maven中javadoc 插件的时候发现,lombok注解过的pojo类无法生成javadoc,lombok官方网站也给出解决方案。
先看pom文件配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<charset>UTF-8</charset>
<encoding>UTF-8</encoding>
<docencoding>UTF-8</docencoding>
<sourcepath>target/generated-sources/delombok</sourcepath>
</configuration>
</plugin>
<!--<plugin>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-maven-plugin</artifactId>-->
<!--</plugin>-->
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.0.0</version>
<configuration>
<encoding>UTF-8</encoding>
<sourceDirectory>src/main/java</sourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
第一步,使用lombok插件生成将lombok注解转成正常代码的classess。
点击idea->右侧maven project ->plugins->lombok->lombok:delombok
会将程序生成到target/generated-sources/delombok/
下面,这时候,在使用插件javadoc即可,
idea->maven project->plugins->javadoc->javadoc:javadoc
即可。
在目录target/site
下就会有javadoc目录。
如果出现乱码,请注意,maven默认的字符集是GBK,idea设置maven的Runner VM Options为GBK即可。
idea->File->settings->Build ,Execution, Deployment->Build Tools -> Maven ->Runner
设置VM Options内容为-Dfile.encoding=GBK
即可。