lombok简介使用

2019/05/27 框架

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即可。

Search

    欢迎添加我的个人微信号

    个人微信哦

    Table of Contents