博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第七篇:SpringBoot 2.x集成Lombok
阅读量:6303 次
发布时间:2019-06-22

本文共 4057 字,大约阅读时间需要 13 分钟。

之前写了一大堆代码,手都写软了,突然发现我们之前写的代码是这样的

package com.priv.gabriel.entity;/** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-14 * @Description: */public class User {    private long id;    private String username;    private String nickname;    private int age;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getNickname() {        return nickname;    }    public void setNickname(String nickname) {        this.nickname = nickname;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return "User{" +                "id=" + id +                ", username='" + username + '\'' +                ", nickname='" + nickname + '\'' +                ", age=" + age +                '}';    }}

这样的

package com.priv.gabriel.demoformybatis.entity;/** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-14 * @Description: */public class User {    private long id;    private String username;    private String passwd;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPasswd() {        return passwd;    }    public void setPasswd(String passwd) {        this.passwd = passwd;    }}

和这样的

package com.priv.gabriel.entity;import javax.persistence.*;/** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */@Entity@Table(name = "users")public class User {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private long id;    @Column(nullable = false)    private String username;    @Column(nullable = false)    private String passwd;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPasswd() {        return passwd;    }    public void setPasswd(String passwd) {        this.passwd = passwd;    }}

看出问题了吗,三十行的代码,二十行都在get/set还有几行的toString,好好的一个实体类,除了属性基本就没什么可看的了,虽然都是靠快捷键生成的,但是有没有什么办法可以让我们少在get/set方法上浪费时间呢?

接下来介绍一下本次的主角Lombok,一个让你可以早点回家陪老婆孩子的神器
先说一下如何使用
pom.xml

org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test

如果只是引用了的话还不行,需要在Plugins里下载一个关于Lombok的插件

然后来看看使用过后的实体类

package com.priv.gabriel.entity;import lombok.*;/** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-14 * @Description: */@Getter@Setter@ToString@EqualsAndHashCodepublic class User {    private int id;    private String username;    private int age;}

甚至是这样的

package com.priv.gabriel.entity;import lombok.*;/** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-14 * @Description: */@Datapublic class User {    private int id;    private String username;    private int age;}

怎么样,感觉到工具类的方便之处了吗,然后简单的介绍一下这里一些注解的含义

@Setter 为该类的属性提供set方法
@Getter 为该类的属性提供get方法
@ToString 提供toString方法
@EqualsAndHashCode 提供equals和hashCode方法
@NoArgsConstructor 无参构造
@AllArgsConstructor 全参构造
@RequiredArgsConstructor 制定参数构造
@Cleanup 注解需要放在流的声明上,再也不用因为忘记finally/try/catch而烦恼了
@Data 大哥,相当于@ToString,@EqualsAndHashCode,Getter以及所有非final字段的@Setter,@RequiredArgsConstructor
@Builder 建造者模式

转载地址:http://uubxa.baihongyu.com/

你可能感兴趣的文章
JavaScript循环读书笔记
查看>>
C++模式学习------单例模式
查看>>
PHP基础
查看>>
NUC1429 WERTYU【输入输出】
查看>>
I00027 Java语言程序-打印九九乘法表
查看>>
springBoot访问HTML,jsp文件
查看>>
vue中使用定时器时this指向
查看>>
js代码规范
查看>>
转:环绕通知返回值 object 类型
查看>>
mybatis 乐观锁和逻辑删除
查看>>
课后作业-团队编程项目总结
查看>>
4.Date 日期对象
查看>>
冒泡排序法算法分析
查看>>
linux服务器解压缩文件的命令
查看>>
排序算法汇总(转载收藏)
查看>>
POJ 1063 Flip and Shift
查看>>
vdbench和fio测试磁盘性能的对比总结
查看>>
博客园博客评论ajax异步提交练习
查看>>
Object-C入门一些东西
查看>>
WPF基础之样式设置和模板化
查看>>