Spring Boot中应用小插件Lombok

敞开build时的注释

 “Settings > Build >
Compiler > Annotation Processors”

金莎娱乐电子游戏网 1

下一场再安装lombok插件

金莎娱乐电子游戏网 2

在类型里布置关于lombok的信任项

compileOnly('org.projectlombok:lombok:1.16.20')

提及底就能够在代码中运用lombok的注释了

/**
 * 用户实体
 *
* @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
* @Setter:注解在属性上;为属性提供 setting 方法
* @etter:注解在属性上;为属性提供 getting 方法
* @og4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
* @oArgsConstructor:注解在类上;为类提供一个无参的构造方法
* @llArgsConstructor:注解在类上;为类提供一个全参的构造方法
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
    @Id
    private String id;
    @NotNull
    private String name;
    private String email;
}

好了,启用插件注脚就聊起此处,感激阅读!

 

lombok 注解:

lombok 提供的笺注十分的少,能够参照官方摄像的传授和官方文书档案。

lombok疏解在线援助文书档案:http://projectlombok.org/features/index.

上边介绍多少个自己常用的 lombok 评释:

@Data:申明在类上;提供类具备属性的 getting 和 setting
方法,别的还提供了equals、canEqual、hashCode、toString 方法
@Setter:评释在性质上;为属性提供 setting 方法
@Getter:注脚在质量上;为属性提供 getting 方法
@Log4j :注脚在类上;为类提供贰个 属性名叫log 的 log4j 日志对象
@NoArgsConstructor:注脚在类上;为类提供二个无参的构造方法
@AllArgsConstructor:注明在类上;为类提供贰个全参的构造方法

下边是回顾示例

1.不使用 lombok 的方案

public class Person {

    private String id;
    private String name;
    private String identity;
    private Logger log = Logger.getLogger(Person.class);

    public Person() {     
    }

    public Person(String id, String name, String identity) {
        this.id = id;
        this.name = name;
        this.identity = identity;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getIdentity() {
        return identity;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setIdentity(String identity) {
        this.identity = identity;
    }
}

2.使用 lombok 的方案:

@Data 
@Log4j
@NoArgsConstructor 
@AllArgsConstructor 
public class Person { 
    private String id; 
    private String name; 
    private String identity; 
} 

地点的多少个 java
类,从效果上来看,它们的效劳是大同小异的,绝比较之下,很刚强,使用 lombok
要简明超多,极其是在类的性质比较多的气象下,同期也制止了改变字段名字时候忘记修改章程名所犯的起码错误。

鉴于自个儿在测验类中利用log变量,竟然是飘红的,然则真正编写翻译运维又不会报错,对于磨牙的作者明明须要找到清除的方案。由此上边特地讲讲基于IDEA+SpringBoot+lombok的行使方案。

代码

lombok使用Annotation来表明有个别类必要足够getter,setter等,上边是采用lombok和不行使lombok的自己检查自纠。

@Setter
@Getter
@ToString
public class XXX implements Entity {

    String id;

}

public class XXX implements Entity {

    String id;

    public String getId(){
        return this.id;
    }

    public void setId(String id){
        this.id = id;
    }
}

能够见到我们不再须求手工业去写Getter和Setter了。

前言

阅读开源项目标时候开采小编用了@data申明,在还没安装lombok在此之前ide提醒找不到相应的get、set方法,查阅资料后发觉小编是行使了lombok插件。

对于IJ这一个IDE工具以来,大家会设置一些插件来提携大家更加好的张开销付,像lombok正是生龙活虎款不错的插件,使用申明的点子在品种编写翻译时推搡大家转移代码,像getter,setter,tostring等等,它们日常都以黄金年代对重新的代码,而lombok正是补助大家转移那个再一次代码的,对于四个IJ的工具以来,假如您不运行编写翻译时表明成效,那么项目在build时会报错!

营造项目

本章的类型不关乎数量访问,所以增多的信任性也超少,pom.xml配置文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ozan</groupId>
    <artifactId>sell</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>sell</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

lombok的依据仅仅独有二个,lombok基于配置在编写翻译class文件时会自动将钦点模板的故事情节写入。

AS插件

加多了正视之后,即便编写翻译时是合情合理的。但是因为Android
Studio语法识别器不认得@Getter和@Setter注明,所以必要加多Lombok插件。
在安装页面 -> plugins -> browser repository -> 寻找lombok ->
install
中标安装之后,再写譬喻XXX.getId()方法时AS就不会报错了。

上边是二个例证:

使用lombok之前:

public class User {
    private String id;
    private int age;
    private String name;

    public String getId() {
        return id;
    }

     public void setId(String id){
        this.id=id;
     }

    public int getAge() {
        return age;
    }

     public void setAge(int age){
        this.age=age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name){
        this.name=name;
    } 
    public User(String id,int age,String name){
        this.id=id;
        this.age=age;
        this.name=name;
    }
}

使用lombok之后:

@data
@AllArgsConstructor
public class User {
    private String id;
    private int age;
    private String name;
}

ToString


而外上述的Getter/SetterLombok还为大家提供了自动生成toString方法的表明@ToString,该表明的成效域仅仅是在实体类上,大家修正实体类增加该注脚,在测量检验类中调用toString方法查看输出内容如下:

System.out.println(user.toString());
//输出:
UserBean(name=测试lombok, age=10, address=sss测试地址)

Lombok自动创立的toString方法会将持有的属性都包蕴而且调用后方可出口。

依赖

正如是Gradle文件配置。因为Lombok的法规是依赖证明生成代码,所以须求选拔apt。
在Project的build.gradle文件中增多对apt的依附

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        //添加apt依赖
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

在app的build.gradle文件中期维修正

//应用apt插件
apply plugin: 'com.neenbedankt.android-apt'
...

dependencies {
        compile 'org.projectlombok:lombok:1.16.8'  //添加lombok依赖
        ...
}

lombok的注解:

金莎娱乐电子游戏网,lombok
注脚在线帮助文书档案:http://projectlombok.org/features/index.
下边介绍多少个常用的 lombok 注解:
@Data :评释在类上;提供类具备属性的 getting 和 setting 方法,
除此以外还提供了equals、canEqual、hashCode、toString 方法
@Setter:评释在品质上;为属性提供 setting 方法
@Getter:声明在性质上;为属性提供 getting 方法
@Log4j :注明在类上;为类提供多少个 属性名称为log 的 log4j 日志对象
@NoArgsConstructor:评释在类上;为类提供贰个无参的构造方法
@AllArgsConstructor:注明在类上;为类提供多少个全参的构造方法


相关文章