博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot使用LomBok
阅读量:7079 次
发布时间:2019-06-28

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

Lombok是什么?它是一个能帮我们消除那些必须要写但是重复的代码,比如setter,getter,构造函数之类的方法。

首先先简单说一下idea安装lombok,有2种方法: 1.直接从下载,然后放到idea安装文件下面的plugins,然后重启idea

2.在idea的settings(windows)或者Preferences(mac),下找到plugins菜单,点击Browse repositories,如图

然后搜索lombok,点击右侧下载,下载完成重启即可,如图

新建项目,在pom文件中加入lombok依赖,完整pom如下:

4.0.0
com.dalaoyang
springboot_lombok
0.0.1-SNAPSHOT
jar
springboot_lombok
springboot_lombok
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
runtime
org.springframework.boot
spring-boot-starter-test
test
org.projectlombok
lombok
1.16.20
org.springframework.boot
spring-boot-maven-plugin
复制代码

新建一个User类,这个是使用lombok的类,代码如下:

package com.dalaoyang.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;/** * @author dalaoyang * @Description * @project springboot_learn * @package com.dalaoyang * @email yangyang@dalaoyang.cn * @date 2018/5/7 */@Data@AllArgsConstructor@NoArgsConstructorpublic class User {    private Integer id;    private String name;    private String password;}复制代码

新建一个UserNoLombok类,这个和原来一样,目的为了对比使用lombok的好处,代码如下:

package com.dalaoyang.entity;import java.util.Objects;/** * @author dalaoyang * @Description * @project springboot_learn * @package com.dalaoyang.entity * @email yangyang@dalaoyang.cn * @date 2018/5/7 */public class UserNoLombok {    private Integer id;    private String name;    private String password;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public UserNoLombok(Integer id, String name, String password) {        this.id = id;        this.name = name;        this.password = password;    }    public UserNoLombok() {    }    @Override    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        UserNoLombok that = (UserNoLombok) o;        return Objects.equals(id, that.id) &&                Objects.equals(name, that.name) &&                Objects.equals(password, that.password);    }    @Override    public int hashCode() {        return Objects.hash(id, name, password);    }    @Override    public String toString() {        return "UserNoLombok{" +                "id=" + id +                ", name='" + name + '\'' +                ", password='" + password + '\'' +                '}';    }}复制代码

然后新建一个UserController测试,代码如下:

package com.dalaoyang.controller;import com.dalaoyang.entity.User;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** * @author dalaoyang * @Description * @project springboot_learn * @package com.dalaoyang.controller * @email yangyang@dalaoyang.cn * @date 2018/5/7 */@RestControllerpublic class UserController {    @GetMapping("/testUser")    public User getUser(){        User user = new User();        user.setId(1);        user.setName("dalaoyang");        user.setPassword("123");        System.out.println(user.toString());        return user;    }}复制代码

访问如图

lombok注解简介:

@Data 标签,生成getter/setter toString()等方法 @NonNull : 让你不在担忧并且爱上NullPointerException @CleanUp : 自动资源管理:不用再在finally中添加资源的close方法 @Setter/@Getter : 自动生成set和get方法 @ToString : 自动生成toString方法 @EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现 @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor 自动生成构造方法 @Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法 @Value : 用于注解final类 @Builder : 产生复杂的构建器api类 @SneakyThrows : 异常处理(谨慎使用) @Synchronized : 同步方法安全的转化 @Getter(lazy=true) : @Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j复制代码

源码下载 :

个人网站:

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

你可能感兴趣的文章
[LeetCode] Alien Dictionary 另类字典
查看>>
Android 实时视频编码—H.264硬编码
查看>>
使用ABP EntityFramework连接MySQL数据库
查看>>
NSubstitute完全手册(十七)参数匹配器上的操作
查看>>
Python 深究readline()
查看>>
摄像机标定(Camera calibration)笔记
查看>>
[LeetCode] Word Frequency 单词频率
查看>>
使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段
查看>>
MVC最为标准的添加操作(从实体验证到实体入库)
查看>>
SpringBoot启动流程简析(二)
查看>>
AspSpider再次开放asp.net2.0 免费空间注册
查看>>
[LeetCode] Boundary of Binary Tree 二叉树的边界
查看>>
C#开发微信门户及应用(19)-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)...
查看>>
C#中进行单元测试
查看>>
ZOJ1051 A New Growth Industry
查看>>
Android中文API(115)——AudioFormat
查看>>
使用java调用fastDFS客户端进行静态资源文件上传
查看>>
Amazon EC2配置步骤和一些问题
查看>>
CentOS 6.4 查看每个进程的网络流量
查看>>
隐马尔科夫模型研究 stock 以及 lotto
查看>>