Spring Boot下的lombok安装以及使用简介
来源:互联网 发布:python kmeans聚类 编辑:程序博客网 时间:2024/06/07 09:52
引言:Spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用。
1. Lombok
Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是在运行过程中,帮你自动生成的。就是说,将极大减少你的代码总量。
Lombok的官方地址: https://projectlombok.org/
2. LomBok的安装
在SpringBoot1.4.1项目的pom.xml中新增如下信息:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>注意这里无需指定版本,因为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@Datapublic 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@Slf4jpublic class TestEntityBean {TestBean bean = new TestBean();@Autowiredprivate MyCase mycase;//@Testpublic 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: default2016-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 hierarchy2016-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 hierarchy2016-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<java.lang.String, java.lang.Object>)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<java.lang.String, java.lang.Object>)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<java.util.Map<java.lang.String, java.lang.Object>> 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默认反射对象中的所有属性,非常的好用。
- Spring Boot下的lombok安装以及使用简介
- Spring Boot下的lombok安装以及使用简介
- lombok的安装以及使用
- Idea下lombok的安装和使用
- lombok安装与使用简介
- lombok安装与使用简介
- lombok安装与使用简介
- lombok安装与使用简介
- lombok在idea中安装以及使用
- Java lombok的安装使用
- lombok的安装和使用
- spring boot-Logging的配置以及使用
- spring boot的使用以及环境配置
- eclipse环境下:lombok安装及使用
- lombok使用-简介
- lombok使用简介
- Spring Boot简介及安装
- spring boot下redis的配置使用
- Linux JDK安装及配置 (tar.gz版)
- 3分钟了解C语言是什么
- Dev-C++中使用EGE图形库
- Android本地存储目录研究
- 计算机科学最重要的32个算法
- Spring Boot下的lombok安装以及使用简介
- CSS基础学习8-CSS设置盒装模式
- 关于listview嵌套listview----高上
- 关于遇到Please ensure that adb is correctly located at 'D:\Java\sdk\platform-tools\adb.exe'...问题的解决
- bzoj 2806 [Ctsc2012]Cheat 后缀自动机 单调队列优化dp
- 扩展名.mk、.rc
- libpcap使用
- 音频帧大小的计算
- boot Makefile完全解读