springboot的lombok
lombok概述
- lombok简介
Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。就是说,将极大减少你的代码总量。
lombok作用
消除模板代码
getter、setter、构造器、toString()、equals()
便捷的生成比较复杂的代码,例如一个POJO要转化成构建器模式的形式,只需要一个注解。
SpringBoot中使用lombok
- 添加依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
- 编写一个实体类 User,使用@Data注解
@Data
public class User {
private String name;
private int age;
}
- 编写测试方法,测试@Data的作用
@Test
public void testUser(){
User user = new User();
user.setName("AnyCode");
user.setAge(20);
System.err.println(user.toString());
}
lombok的注解介绍
@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
推荐使用技巧
- 在 Bean / Entity 类上使用 @Data 注解。
- 需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。
注意:lombok 的注解不能被继承。
IDEA中使用lombok
如果想让lombok生效我们还需要针对idea工具进行插件的安装,下面我们按照顺序打开Idea配置
File > Settings > Plugins > Browse repositories... > 输入lombok,插件就会被自动检索出来,如下图所示:
我的工具已经安装了该插件,所有在右侧是没有任何按钮的,如果你的工具没有安装该插件,
右侧会有一个绿色的按钮,按钮的内容则是Install,点击安装后重启Idea就可以了。
lombok常用注解详解
- @EqualsAndHashCode,@ToString :告诉Lombok来生成 equals, hashCode方法,toString方法
在生成这些方法的时候lombok会使用所有的成员变量。
- ** @AllArgsConstructor** :会自动创建一个包括所有成员的构造器。
- @Getter/@Setter: 注解会为每一个标记的成员变量自动生成对应的方法。
- 用例
package com.jxlg.lance.springbootcorestudy.lombok; import lombok.*; /**
* @author lance(ZYH)
* @function 测试其他注解
* @date 2018-03-22 12:27
*/
@EqualsAndHashCode
@ToString
@AllArgsConstructor
public class Student {
@Setter
@Getter
private String stuName; @Setter
@Getter
private Integer stuAge; @Setter
@Getter
private String stuClass; @Setter
@Getter
private Integer stuNumber;
}
- 如果你不想将注解用在全部的成员变量上,而是仅仅部分变量上,那么你可以提供一个指定的哪一个成员变量需要
自动生成方法的变量。举例: 比如在这里,我们只想让stuName,stuAge两个成员变量出现在 toString 方法里。
@EqualsAndHashCode
@ToString(of = {"stuName","stuAge"})
@AllArgsConstructor
public class Student {
@Setter
@Getter
private String stuName; @Setter
@Getter
private Integer stuAge; @Setter
@Getter
private String stuClass; @Setter
@Getter
private Integer stuNumber;
}
- 这些代码已经比我们一开始要好太多了,但是它任然不够简洁。这里重复了大量的 @Getter 和 @Setter 注解。
如果你只是需要在Class中仅暴露几个字段,那么使用它们非常方便,但如果您需要为所有字段生成访问器,则会变得烦人又无聊。
为了使代码更加简洁, Lombok永续我们在类级上使用这些注解。如果这些注解放在类名之上,
那么lombok会自动为我们生成所有字段的访问方法。
@EqualsAndHashCode
@ToString
@AllArgsConstructor
@Setter
@Getter
public class Student {
private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber;
}
- @Buidler :实例化这个类
- 用例
@EqualsAndHashCode
@ToString
@AllArgsConstructor
@Setter
@Getter
@Builder
public class Student {
private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber;
}
测试类:
package com.jxlg.lance.springbootcorestudy.lombok; import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4; import static org.junit.Assert.*; @RunWith(JUnit4.class)
public class StudentTest { @Test
public void test(){
Student student = Student.builder()
.stuName("张三")
.stuAge(12)
.stuClass("高三")
.stuNumber(12222)
.build();
System.out.println(student);
}
}
结果:
Student(stuName=张三, stuAge=12, stuClass=高三, stuNumber=12222)
- @Data :简单的来说所有所有的注解我们都可以使用一个注解完成.也就是@Data
我们在定义类的时候 只需要加一个 @Data 注解,其他的注解我们都不需要在添加就可以达到前面所说的所有功能。
- 通过上面介绍的,我们平常使用Lombok只需要这样就是就可以了,如下:
@Data
@Builder
public class User {
private String name;
private Integer age;
}
springboot的lombok的更多相关文章
- SpringBoot学习笔记(五):SpringBoot集成lombok工具、SpringBoot集成Shiro安全框架
SpringBoot集成lombok工具 什么是lombok? 自动生成setget方法,构造函数,打印日志 官网:http://projectlombok.org/features/index. 平 ...
- SpringBoot(四)SpringBoot中lombok使用
lombok概述 lombok简介 Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写 ...
- SpringBoot集成Lombok,应用+源码解析,让代码优雅起来
一.Lombok简介 (1)Lombok官网(https://projectlombok.org/)对lombok的介绍 (2)GitHub项目地址:https://github.com/rzwits ...
- SpringBoot使用LomBok
Lombok是什么?它是一个能帮我们消除那些必须要写但是重复的代码,比如setter,getter,构造函数之类的方法. 首先先简单说一下idea安装lombok,有2种方法: 1.直接从http:/ ...
- Idea Spring-boot gradle lombok
1:build.gradle compile("org.projectlombok:lombok:1.16.16") 2:idea安装lombok插件 3:设置 4:重启
- SpringBoot与Lombok
Lombok 在项目中使用Lombok可以减少很多重复代码的书写.具体详细资料可以浏览 https://blog.csdn.net/motui/article/details/79012846 一.引 ...
- Spring Boot笔记(五) SpringBoot 集成Lombok 插件
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 为了减少代码量,为当前项目添加 lombok 来优雅编码 Lombok 插件安装: a . 添加依赖: ...
- 带你搭一个SpringBoot+SpringData JPA的环境
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Da ...
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...
随机推荐
- 后台CRUD管理jqGrid 插件下载、使用、demo演示
jqGrid:demo?version=5.2.1download src: http://www.trirand.com/blog/ github:https://github.com/tonyto ...
- 清理XFCE4卸载残留
apt-get remove xfce4 apt-get remove xfce4* apt-get autoremove apt-get autoclean apt-get clean --- 更新 ...
- n+lognlogV查找最大值
来自Blogewoosh #6. 啃了一下,写个翻译吧. 问题:你有一个数组,你不知道每个元素的大小,但是能够提出询问:a[x]是否>=v?你需要找出这个数组的最大值,只能询问n + lognl ...
- hdu5306 Explosion
题目链接 题意 有n个房间,每个房间里面有若干把钥匙,每把钥匙可以打开对应的一扇门.如果手中没有钥匙,就要随机轰炸一个房间来打开这个房间.如果有钥匙,就要去打开这些房间.问期望轰炸次数是多少. 思路 ...
- (转)每天一个linux命令(44):top命令
背景:在面试时候面试官问到关于linux服务器下内存优化的问题.自己之前可能接触过也没有深入总结过. top命令 每天一个linux命令(44):top命令
- 华为2018软件岗笔试题之第一题python求解分享
闲来无事,突然看到博客园首页上有人写了篇了华为2018软件岗笔试题解题思路和源代码分享.看了下题目,感觉第一题能做出来,就想着用刚刚学的python试着写一下,花费的时间有点长~~,看来又好长时间没练 ...
- android studio adb.exe已停止工作(全面成功版 进程的查询和开启)
先输入adb看是否存在. 如果不存在则:在系统path里添加C:\Users\nubia\AppData\Local\Android\sdk\platform-tools 因为这个目录里有adb 或者 ...
- JS模块化开发(三)——seaJs+grunt
1.seaJs直接构建存在的问题 由于模块之间的依赖require引用的是模块名,当多个js模块被合并成一个时,会由于找不到模块名而报错 2.seaJs+grunt开发 用到的插件:grunt-cmd ...
- nginx 配置两个域名
1.首先第一步安装: 参考:https://www.cnblogs.com/wyd168/p/6636529.html 启动: /usr/local/nginx/sbin/nginx -c /usr/ ...
- Windows下MySQL下载安装、配置与使用
用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至 ...