前言

众所周知Spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用。文中详细介绍了lombok的安装与使用教程,话不多说了,来一起看看详细的介绍吧。

1. Lombok

Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是在运行过程中,帮你自动生成的。就是说,将极大减少你的代码总量。

2. LomBok的安装

在SpringBoot1.4.1项目的pom.xml中新增如下信息:

org.projectlombok

lombok

注意:这里无需指定版本,因为Spring Boot中已经默认引入了这个类库,且指定了其scope。 这个即将lombok引入了项目,可以引用其类库标注。

针对不同的IDE,lombok提供了不同的解决方案,笔者使用的是STS,故这介绍一下如何使用lombok插件在STS中:

>> 1.  下载最新的lombok,最新版本。1.16.10  https://projectlombok.org/download.html

>> 2.  切到lombok下载的目录,运行命令: java -jar lombok.jar

选中目录之后,就会看到如下窗口:

大家可以看到,这里的会使用javaagent的方式写入STS的启动过程中。在确定之后,我们切到sts的安装目录,验证一下STS.ini文件:

大家也可以发现,在STS的目录下,也有lombok.jar文件的存在,整个安装过程即可完成。

3.   Lombok的使用

主要是基于标注来进行信息的封装和使用:

@NonNull:  标识对象是否为空,为空则抛出异常

@Getter:   自动生成Getter方法

@Setter:  自动生成Setter

@ToString:  覆盖tostring方法

@EqualsAndHashCode: 覆盖equal和hashCode方法

@Data:  @Getter/@Setter, @ToString, @EqualAndHashCode等组合

@Slf4j:  默认使用slf4j的日志对象

4. 使用示例:

示例Getter/Setter方法以及日志使用:

import lombok.Data;

import lombok.extern.slf4j.Slf4j;

@Slf4j

@Data

public class TestBean {

private String name;

private int age;

}

测试用例:

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import lombok.extern.slf4j.Slf4j;

@RunWith(SpringRunner.class)

@SpringBootTest

@Slf4j

public class TestEntityBean {

TestBean bean = new TestBean();

@Autowired

private MyCase mycase;

//@Test

public void test() {

bean.setAge(123);

bean.setName("zhangsan");

log.info(bean.toString());

}

}

用例运行结果

. ____ _ __ _ _

/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v1.4.1.RELEASE)

2016-10-24 11:49:19.521 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : Starting TestEntityBean on 08-201412015324 with PID 700 (started by junfengchen in D:\Dev\workspace\JSPDemo)

2016-10-24 11:49:19.523 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : No active profile set, falling back to default profiles: default

2016-10-24 11:49:19.647 INFO 700 --- [ main] o.s.w.c.s.GenericWebApplicationContext : Refreshing org.springframework.web.context.support.GenericWebApplicationContext@4f80542f: startup date [Mon Oct 24 11:49:19 CST 2016]; root of context hierarchy

2016-10-24 11:49:22.191 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.web.context.support.GenericWebApplicationContext@4f80542f: startup date [Mon Oct 24 11:49:19 CST 2016]; root of context hierarchy

2016-10-24 11:49:22.290 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/foo]}" onto public java.lang.String org.cuckoo.report.brain.WelcomeController.foo(java.util.Map)

2016-10-24 11:49:22.293 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[GET]}" onto public java.lang.String org.cuckoo.report.brain.WelcomeController.welcome(java.util.Map)

2016-10-24 11:49:22.295 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)

2016-10-24 11:49:22.296 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

2016-10-24 11:49:22.351 INFO 700 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-10-24 11:49:22.351 INFO 700 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-10-24 11:49:22.409 INFO 700 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-10-24 11:49:22.642 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : Started TestEntityBean in 3.868 seconds (JVM running for 4.854)

2016-10-24 11:49:22.676 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : TestBean(name=zhangsan, age=123)

2016-10-24 11:49:22.691 INFO 700 --- [ Thread-2] o.s.w.c.s.GenericWebApplicationContext : Closing org.springframework.web.context.support.GenericWebApplicationContext@4f80542f: startup date [Mon Oct 24 11:49:19 CST 2016]; root of context hierarchy

大家可以注意到@Slf4j替代掉了冗余的logger声明语句, @Data不必在使用Getter/Setter方法,其中toString默认反射对象中的所有属性,非常的好用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

sts引入lombok_Spring Boot中lombok的安装与使用详解相关推荐

  1. python中re的安装步骤_python--“re”详解

    一.什么是正则表达式? 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 正 ...

  2. Linux中man手册的安装以及使用详解

    Linux中man手册的安装以及使用详解 linux中man手册的安装以及使用详解 man手册是什么 man手册是干嘛的 man手册如何安装 man手册如何使用 举例讲解 我们来看一下man手册的目录 ...

  3. linux全自动安装光盘,CentOS7全自动安装光盘制做详解

    CentOS7全自动安装光盘制做详解node 1 复制光盘文件linux 1)挂载iso镜像ios 建立目录用于挂载光盘:redis mkdir /root/centos7 挂载iso镜像vim mo ...

  4. linux ipset 流量,linux中ipset命令的使用方法详解

    linux中ipset命令的使用方法详解 发布时间:2020-10-25 17:07:19 来源:脚本之家 阅读:97 作者:lijiaocn 栏目:服务器 ipset介绍 iptables是在lin ...

  5. 从文本界面安装RHEL5操作系统详解

     从文本界面安装RHEL5操作系统详解 译: -从图形化界面安装系统,按回车键      -从文本界面安装系统,输入linux text 回车      -使用功能键列出下面更多的信息 [F1-主界面 ...

  6. gulp的安装和配置详解

    gulp的安装和配置详解 1.安装node.js 先下载一个node.js安装包. 下载完成后双击即可. 打开cmd,命令行输入node -v,回车输出nodejs版本号,表示安装成功. 命令行输入n ...

  7. CentOS 7.0全自动安装光盘制作详解

    CentOS 7.0全自动安装光盘制作详解 1 复制光盘文件 1 )挂载 iso 镜像 创建目录用于挂载光盘: mkdir /root/centos7 挂载 iso 镜像  mount -o loop ...

  8. u盘启动 v5 华为2288h_华为2288H V5 安装Windows2012R2步骤详解

    华为2288H V5 安装Windows2012R2步骤详解 这款服务器支持多种方式安装操作系统:一.通过IPMI管理口安装:二.通过F6引导安装:三.通过光盘等移动介质安装系统. 这里我就先介绍第一 ...

  9. linux文件目录:Linux中各目录(文件夹)作用详解(持续更新)

    进入Linux系统,我们就是畅游在各种目录文件中,毕竟Linux是"文件系统",文件的存放就是在目录下面,那我们了解下"Linux中各目录(文件夹)作用详解"还 ...

最新文章

  1. jQuery验证用户名是否可用
  2. 牛客网【每日一题】5月22日 [CQOI2009]中位数图
  3. 关于linux系统中无法识别某一命令问题的解决方案
  4. Python在大部分领域都能胜任,为什么很多企业转向了Golang?
  5. 有趣的flash例子
  6. python编程入门教学视频-Python编程入门电子书及视频教程-非常详细『强烈推荐』...
  7. book118可预览文档下载
  8. Go测试远控免杀学习
  9. retainall的问题
  10. python的奇怪符号 -> 与 ...(点点点)
  11. java 登陆短信验证码_JAVA短信验证登录
  12. 青少年CTF-Web-CheckMe01
  13. python的江湖世界
  14. 软件评测师题库--操作系统基础知识
  15. 【Matlab】修改图片dpi方法总结
  16. 几个吓尿了的公众号,前几个你不可能没听过
  17. MT4软件IOS版如何下载
  18. 数组常用的API(二)
  19. 4.1nbsp;需求定律分析
  20. 全息存储:名气大于实力的存储技术?

热门文章

  1. UBUNTU无法播放mp4格式电影的烦恼-是否可行待验证
  2. UML建模之时序图(Sequence Diagram)
  3. 广播等风暴的解决办法
  4. POJ1363Rails队列和栈应用
  5. hikvision v2.3控件网页demo_昆山UI网页设计师专业培训班 UI设计好就业吗?
  6. android模拟手指滑动,Android Accessibility 模拟界面滑动
  7. Cortex-M3的工作模式和特权级别
  8. mysql qadir_MySQL 及 SQL 注入
  9. 在每天下午5点使用计算机时,网络信息安全知识网络竞赛试题(附答案)讲解学习...
  10. oracle修改表结构精度,常见问题--oracle10g修改表结构