Spring Boot中lombok的安装与使用详解

发布时间 - 2026-01-11 03:17:06    点击率:

前言

众所周知Spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用。文中详细介绍了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 
@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<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  # 插件安装  # Java开发神器Lombok安装与使用详解  # IDEA中安装和使用Lombok插件的方法  # Lombok插件的安装与简单使用步骤  # Lombok插件安装(IDEA)及配置jar包使用详解  # 解决在Idea 2020.2下使用 Lombok的注解不生效的问题(插件安装了  # 依赖也写了  # 自动注解也设置了)  # 详解Lombok快速上手(安装、使用与注解参数)  # Intellij IDEA安装lombok插件及使用详解  # Lombok 安装和使用小技巧  # 的是  # 自动生成  # 帮你  # 为空  # 过程中  # 类库  # 就会  # 是在  # 也有  # 说了  # 不多  # 注意到  # 给大家  # 引入了  # 可以看到  # 掉了  # 详细介绍  # 这篇文章  # 谢谢大家  # 好用 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Android自定义listview布局实现上拉加载下拉刷新功能  Android使用GridView实现日历的简单功能  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  JavaScript如何实现错误处理_try...catch如何捕获异常?  教你用AI将一段旋律扩展成一首完整的曲子  Firefox Developer Edition开发者版本入口  JS中对数组元素进行增删改移的方法总结  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  JavaScript如何实现倒计时_时间函数如何精确控制  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel如何使用Vite进行前端资源打包?(配置示例)  深圳网站制作培训,深圳哪些招聘网站比较好?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何实现本地化和多语言支持?(i18n教程)  简历没回改:利用AI润色让你的文字更专业  Linux网络带宽限制_tc配置实践解析【教程】  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  JavaScript如何实现路由_前端路由原理是什么  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在IIS7上新建站点并设置安全权限?  php结合redis实现高并发下的抢购、秒杀功能的实例  英语简历制作免费网站推荐,如何将简历翻译成英文?  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel怎么在Controller之外的地方验证数据  如何在IIS7中新建站点?详细步骤解析  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  Python高阶函数应用_函数作为参数说明【指导】  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  大同网页,大同瑞慈医院官网?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何安全更换建站之星模板并保留数据?  昵图网官方站入口 昵图网素材图库官网入口  Linux安全能力提升路径_长期防护思维说明【指导】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  iOS发送验证码倒计时应用  如何基于云服务器快速搭建网站及云盘系统?  高端建站三要素:定制模板、企业官网与响应式设计优化  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel如何使用Sanctum进行API认证?(SPA实战)