永利爆大奖安全网址-永利爆大奖线路检测中心

【永利爆大奖安全网址,永利爆大奖线路检测中心】,欢迎来到【LG】娱乐中心,玩你所玩,看你所看,澳门皇冠,太阳集团,澳门太阳赌城,永利402,55402com永利,永利402com,澳门十大赌场,手机网投平台,赌博app官网,永利官网,永利国际,永利皇宫,永利注册,金沙城,金沙官网奥门金沙网址,4166am金沙,我们是一家正规的网上官方平台,自创建以来,以其稳定、安全、快捷和良好的信誉得到了各界同仁的一致认可和好评。期待您的到来!

Boot中利用小插件Lombok,Compiler时开启插件的笺注

日期:2019-12-04编辑作者:编程应用

对此IJ这么些IDE工具以来,大家会设置一些插件来帮忙大家越来越好的举行开拓,像lombok便是生龙活虎款不错的插件,使用评释的措施在类型编写翻译时拉拉扯扯我们转移代码,像getter,setter,tostring等等,它们日常都是有的双重的代码,而lombok正是赞助大家转移这几个重新代码的,对于多少个IJ的工具以来,假诺您不运维编写翻译时注脚功效,那么项目在build时会报错!

前言:

逛开源社区的时候无意开掘的,用了黄金年代段时间,感觉还足以,特此推荐一下。

lombok 提供了大约的注释的款式来帮忙我们简化解除一些亟须有但显示很肥胖的 java 代码。特别是对于 POJO,光说不做不是作者的作风,先来看看啊。

lombok的法定网站:http://projectlombok.org/

lombok讲解在线协理文书档案:http://projectlombok.org/features/index.

lombok 其实到那边作者就介绍完了,开个笑话,其实官方网址络有 lombok 八分七十一秒的录像讲授,里面讲的也很明白了,而且还会有文档可以参照他事他说加以考察。在这里处自身就不扯太多,先来看一下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增加开拓功效。

营造项目

本章的品类不关乎数量访谈,所以增多的依靠也少之又少,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文件时会自动将钦定模板的内容写入。

创办实体

为了方便演示lombok的奇妙之处,我们大约创制五个顾客实体,基于该实体进行布署lombok表明,实体代码如下所示:

public class UserBean
{
    //名称
    private String name;
    //年龄
    private int age;
    //家庭住址
    private String address;
}

下边我们先来拜见大家最常用的getter/setter基于lombok怎么着拔取。

Getter/Setter


Getter/Setter注脚功能域可以是实体类也能够是现实性的本性字段,上面咱们只有对name属性加多注脚,代码如下所示:

//...省略
//名称
@Getter
@Setter
private String name;

假设想让lombok生效大家还索要针对idea工具实行插件的设置,上面我们依据顺序展开Idea配置File > Settings > Plugins > Browse repositories... > 输入lombok,插件就能够被自动检索出来,界面如下图1所示:

图片 3


因而加多lombok的插件是非常有十分重要的,不然项目在未编写翻译前各处飘红。

笔者的工具已经设置了该插件,全数在左侧是不曾别的按钮的,尽管您的工具未有设置该插件,左边会有二个古金色的开关,按键的源委则是Install,点击安装后重启Idea就足以了。
为了便于大家直接行使SpringBoot项目为大家创造的测量检验类来声明我们的lombok注明是还是不是已经生效,测量检验类代码如下所示:

@RunWith(JUnit4.class)
//@RunWith(SpringRunner.class)
//@SpringBootTest
public class Chapter29ApplicationTests {

    @Test
    public void testLombok()
    {
        //测试Getter/Setter
        UserBean user = new UserBean();
        user.setName("测试lombok");
        System.out.println(user.getName());
    }
}

能够观望大家得以健康使用name属性的getter/setter方法,不过任何属性的却是不能够调用,下边大家更正表明Getter/Setter地方,配置到实体类上。修改后的代码如下所示:

//省略...
@Getter
@Setter
public class UserBean
{
    //名称
    private String name;
    //年龄
    private int age;
    //家庭住址
    private String address;
}

咱俩再来测验下任何属性是或不是可以访谈到了,测量检验类改革代码如下所示:

//省略...
@Test
    public void testLombok()
    {
        //测试Getter/Setter
        UserBean user = new UserBean();
        user.setName("测试lombok");
        user.setAge(10);
        user.setAddress("测试地址");

        System.out.println(user.getName()+"  " + user.getAge() +"  "+user.getAddress());
    }

能够看看大家校订配置地点后UserBean实体内的富有属性都富有了Getter/Setter方法,那样我们在付出中就不必要再去做多余的更改操作了。

ToString


除此而外上述的Getter/SetterLombok还为大家提供了自动生成toString方法的讲明@ToString,该注脚的功用域仅仅是在实体类上,大家改革实体类增添该注明,在测验类中调用toString方法查看输出内容如下:

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

Lombok自动创建的toString方法会将装有的本性都满含而且调用后能够出口。

AllArgsConstructor


Lombok还提供了整套参数的结构函数的自动生成,该阐明的成效域也是唯有在实体类上,因为只有实体类才会设有构造函数。改良加多该注脚並且测量试验调用,如下所示:

UserBean u = new UserBean("构造lombok",1,"测试地址");
//输出:
UserBean(name=构造lombok, age=1, address=sss测试地址)

注意:该注脚配置后会自动生成一个具体整体参数的布局函数,参数的顺序与性情定义的顺序豆蔻梢头致。

NoArgsConstructor

本来除了全体参数的构造函数,Lombok还提供了未曾子舆数的布局函数,使用方法与@AllArgsConstructor大器晚成致。

到这里或然你就有问号了,我为了一个类增多这么多评释麻烦呢?还不及工具生成getter/setter来的快呢,那好Lombok针对那一个难点也做出了减轻方案。

Data


咱俩采取@Data评释就能够分包@ToString、@Getter、@Setter方法,当然我们选择布局函数时依然供给单独加多表明,下面大家校订实体类加多@Data表明代码如下所示:

/*@Getter
@Setter
@ToString*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserBean
{
    //名称
    private String name;
    //年龄
    private int age;
    //家庭住址
    private String address;

    public String getAddress() {
        return "sss"+address;
    }
}

咱俩将@ToString、@Getter、@Setter多少个注明注释掉后加多@Data,依据合法所说这个时候我们的测量检验类应该不会不能自已其余的极度,我们张开测量试验类查看是不是平常。

翻开后果真,未有现身别的的不胜,那也作证了@Data证明确实含有了地点多少个证明。

Slf4j


还会有多个利器,Lombok为大家松手了各个日志组件的支撑,大家在SpringBoot项目支付中大致都以使用logback作为日志组件,而logback是基于slf4j落成的。所以我们在实体类上直接助长@Slf4j就足以活动创制一个日记对象作为类内全局字段,自动制造的代码如下所示:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Chapter29ApplicationTests.class);

为了测量试验自个儿在Chapter29ApplicationTests测量检验类上增添了@Slf4j,调用效果如下所示:

//调用:
log.info(u.toString());
//输出:
23:55:46.100 [main] INFO com.yuqiyu.chapter29.Chapter29ApplicationTests - UserBean(name=构造lombok, age=1, address=sss测试地址)

总结


上述内容就是本章的全体描述,本章首要讲授Lombok用以便于开采的注释组件。Lombok即使提供的机件相当少,然而每二个都以我们须求的,便是因为这么进而大大减弱了作者们的职业量,极其是这种不起眼却又一定要写的代码。Lombok官方文书档案地址

完结,歇息!

本文由永利爆大奖安全网址发布于编程应用,转载请注明出处:Boot中利用小插件Lombok,Compiler时开启插件的笺注

关键词:

什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?

什么是CGI CGI全称是“公共网关接口”(Common GatewayInterface卡塔尔,HTTP服务器与你的或别的机器上的主次开展“交谈”的...

详细>>

如何避免HBase写入过快引起的各种问题

先是大家大约回看下任何写入流程 client api == RPC == server IPC == RPC queue == RPC handler == write WAL == write memstore == flush to fi...

详细>>

运营从零开始,PHP判断用户是否已经登录_php实例

找回登录密码找回登录密码 作为刚刚毕业的自己,带着迷茫来到了这个陌生的城市。其实我的第一份工作简历里并没...

详细>>

我欠Python一本书

liao.cpython.org...

详细>>