Lombok 认知

DDD学习笔记 - 实战篇(Ⅱ) 14 | 代码模型(下):如何保证领域模型与代码模型的一致性? 课程链接:https://time.geekbang.org/column/article/166147 DDD 强调先构建领域模型然后设计微服务,以保证领域模型和微服务的一体性,因此不能脱离领域模型来谈微服务的设计和落地。但在构建领域模型时,往往是站在业务视角的,并且有些领域对象还带着业务语言。还需要将领域模型作为微... 阅读详情

一、Lombok是什么

    现在看一下Lombok官方对其进行的解释:Lombok官网:https://projectlombok.org

第一句话,Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。接着,不用再一次写额外的getter或者equals方法。翻译到这里其实就可以,后面是对Lombok早期应用的介绍。通过这两句话不难理解lombok其实就是帮助我们编写getter或者equals方法的一个“工具”。其实他的魅力并不在于帮助我们简单的编写对应的getter或者更多的方法,还有一点在于,当我们的字段发生改变时,lombok也会对相应的getter方法进行改变。

二、为什么要在自己的项目中使用Lombok

   要回答这个问题,仅仅知道什么是Lombok是不够的。在讲解原理之前我想再提一点 ,这也是为什么要使用Lombok的关键所在:根据Lombok的使用规则,如果想要使用Lombok就需要删除在项目中(JavaBean)存在的已经生成的getter方法setter方法以及equals和hash方法,当然Lombok也提供了对打印日志的处理。这样在使用Lombok以后就会大大减少项目中的代码量,同时由于Lombok有自动修改的功能,这也提供了项目中代码的执行效率。

   综上所述,使用Lombok的两点主要原因就是:

        (1)、简化冗余的JavaBean代码;

        (2)、大大提高JavaBean中方法的执行效率;

三、如何使用LomBok

    在Lombok的官网中,有一个install选项,我们点开它会看到多种安装方式:

大家可以根据自己的项目需求来选择使用哪种方式,这里以Maven为例:

点击Maven会看到一组坐标:

      

根据它的提示我们将这一组坐标添加到我们的pom文件中:

        

添加进去以后点击import change,等待Idea把jar包下载完就可以在项目中使用了。

四、Lombok实现原理

    Lombok实现了JSR 269 API规范,javac在Java6开始支持这一规范,只要程序实现了该API,就能在javac运行的时候得到调用,那么Lombok在编译时使用的就是javac,具体流程如下:

首先是项目的源代码文件,在经过编译处理以后,lombok会使用自己的抽象语法树去进行注解的匹配,如果在项目中的某一个类中使用了lombok中的注解,那么注解编译器就会自动去匹配项目中的注解对应到在lombok语法树中的注解文件,并经过自动编译匹配来生成对应类中的getter或者setter方法,达到简化代码的目的。执行顺序就如上图的叠放顺序。

五、Lombok注解详解

   Lombok主要常用的注解有:@Data,@getter,@setter,@NoArgsConstructor,@AllArgsConstructor,@ToString,@EqualsAndHashCode,@Slf4j,@Log4j。我们一个一个来看:

@Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;

@getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;

@setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;

@NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;

@AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;

@ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;

@EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;

@Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

@Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):

@ToString(exclude="column")

意义:排除column列所对应的元素,即在生成toString方法时不包含column参数;

@ToString(exclude={"column1","column2"})

意义:排除多个column列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成toString方法时不包含多个column参数;

@ToString(of="column")

意义:只生成包含column列所对应的元素的参数的toString方法,即在生成toString方法时只包含column参数;;

@ToString(of={"column1","column2"})

意义:只生成包含多个column列所对应的元素的参数的toString方法,其中间用英文状态下的逗号进行分割,即在生成toString方法时只包含多个column参数;

六、使用Lombok可能需要注意的地方

    (1)、当你的IDE是Idea时,要注意你的Idea是支持Lombok的,如果不支持请更换2017版本尝试。

   (2)、在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide类同)。

   (3)、参数的处理往往都是根据项目需求来进行,请妥善处理参数。

   (4)、如果你无法访问Lombok官网,你可以从这篇博文中将Maven坐标照着自己打进去,或者你也可以访问Maven的中央仓库搜索Lombok,将Maven坐标复制进去即可。

Lombok(原理,Lombok安装,Lombok注解) 系列文章目录 目录 系列文章目录 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要.. 阅读详情

相关推荐

Lombok深入——Lombok开发文档教程

Lombok初步介绍 Lombok能干什么 Lombok要如何使用 Lombok Lombok Lombok 注解概览表 注解 注解范围 作用 注意事项 @Data 类 提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法 @EqualsAndHashCode @ToString 类 为类重写 toString 方法 @Getter 类,属性 为属性提供 getting 方法

SR02020的博客 2688

Lombok-全面详解(学习总结---从入门到深化)

以前的Java项目中,充斥着太多不友好的代码:POJO的 getter/setter/toString/构造方法;打印日志;I/O流的关闭操作等 等,这些代码既没有技术含量,又影响着代码的美观,Lombok应 运而生。LomBok可以通过,帮助开发人员消除JAVA中尤其是POJO类中 的冗长代码。1、使用LomBok之前2、使用LomBok之后。

1万+

SpringBoot使用Lombok

Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。

kg1ling的博客 1714

Lombok超详解

以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString/构造方法;打印日志;I/O流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观,Lombok应运而生。LomBok可以通过注解,帮助开发人员消除JAVA中尤其是POJO类中的冗长代码。使用LomBok之前使用LomBok之后。

qq_53317005的博客 1万+

ESP32锂电池电量检测实战:从引脚选择到低功耗优化(附完整电路图)

本文详细介绍了ESP32锂电池电量检测的实战方案,从ADC引脚选择到低功耗优化,提供完整的电路图和代码实现。通过MOS管智能开关和深度睡眠技术,显著降低静态功耗至0.5μA,提升设备续航能力。适合物联网开发者解决电量检测中的常见问题。

weixin_28731223的博客 459

思澈sdk-新建lcd

co5300至此有3个同ID的驱动,在co5300xxxx.c的LCD_DRIVER_EXPORT(co5300, LCD_ID, &lcdc_int_cfg, &CO5300_drv, LCD_PIXEL_WIDTH, LCD_PIXEL_HEIGHT, 2);2 在customer\peripherals\Kconfig_lcd中添加如下配置(注意修改的地方有两个LCD_USING_TFT_CO5300_143)5 在该文件中的config LCD_DPI配置项下添加:(这里300为DPI)

gongyuan073的专栏 1380

lombok简介

Lombok 一、Lombok的简介 是一个在Java开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码而出现的插件,让编写的类更加简洁。 以@Data为例 在写实体类时,经常需要先定义变量 private int rid; private String rname; 手写或者自动生成,get、set、ToString方法等等操作 public int getRid() { return rid; } public

春花秋月冬雪风,留得残荷听雨声。 7万+

Python解析骑行fit文件:从数据缺失到完整记录

本文详细介绍了如何利用Python解析和处理骑行FIT文件,解决数据缺失问题。通过使用fitparse库读取二进制FIT文件,并结合Garmin FitCSVTool进行格式转换,指导读者一步步诊断数据完整性、设计心率修补方案,并最终生成完整的骑行记录文件。该方法为骑行爱好者提供了灵活的数据修复与自定义分析能力。

weixin_29062255的博客 456

Lombok介绍、使用、神奇操作、以及工作中遇到的一些坑

在没有lombok之前,我们写一个实体类(或JavaBean或Pojo或叫其他),除了定义基本的属性之外,其他如无参构造方法、有参构造方法、setter/getter、toString、甚至equals、hashCode方法等,以及如果要操作Builder模式的话还需要自己手动编写大篇幅的代码去实现,枯燥,编码量大,还容易出现拼写错误。有了lombok之后,通过在类或属性上添加几个注解,就可以让编辑器在代码编译时帮我们自动生成相应的setter/getter/构造方法等,即提高了开发效率,又提升了代码的可读

github_38727595的博客 7451

dpdk 源码分析 rte_ring

rte_ring源码分析

qq_40843445的博客 929

手把手教你用Cesium和RayMarching实现逼真体积云(附完整Shader代码)

本文详细介绍了如何利用Cesium和RayMarching技术实现逼真的体积云效果,包括环境准备、核心逻辑、云层建模和光照增强等关键步骤,并提供了完整的Shader代码。通过噪声函数选型、动态风场模拟和多重散射近似等技术,开发者可以在数字地球可视化项目中创建沉浸式天气效果,显著提升场景的真实感。

weixin_29230649的博客 415

Lombok认知

Lombok的简介 Lombok是一款Java开发插件,公司项目到处使用,整体效果很棒,代码更干净。Java开发人员可以节省出重复构建,诸如hashCode和equals这样的方法以及各种业务对象模型的accessor和ToString等方法的大量时间。对于这些方法,它能够在编译源代码期间自动帮我们生成这些方法,并没有如反射那样降低程序的性能。 Lombok的基本使用示例 1.Val可以将变量申明...

weixin_30466421的博客 82

pytorch转onnx转paddlepaddle

1.pt转onnx 可查看我之前的文章:https://blog.youkuaiyun.com/oyjwin/article/details/117778583?spm=1001.2014.3001.5501

oyjwin的博客 1458

Lombok 注解在 Java 对象设计中的高效实践

在 Java 企业级开发中,对象类型(PO/BO/VO/DTO)的设计与维护至关重要。传统 Java Bean 需要大量样板代码,严重影响开发效率和可读性。Lombok 项目通过注解极大简化了这些对象的编写,让 Java 代码更简洁、更易维护。Lombok 是一个开源 Java 库,通过注解自动生成代码(如 getter/setter、构造器、toString 等),减少冗余,提高开发效率。它通过注解处理器,在编译期生成对应代码,开发者只需关注业务逻辑。对象类型分工明确。

IT技术学习与工作笔记分享 1383

全志V3S嵌入式驱动开发(驱动开发准备)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 之前的文章都是教大家怎么搭建环境、看原理图、编译内核和根文件系统、做镜像,直到现在才进入驱动开发的主题。毕竟整个专栏的目的,还是希望大家能够学会驱动外部硬件。驱动好硬件,分成硬件和软件两个部分,硬件的部分比较好理解,就是看相关的信号有没有对接上即可,但是软件对接、甚至于怎么写软件,大家好像接触的比较少,所以这个时候,就可以简单讨论一下,怎么样才能写驱动代码。 1、了解外部驱动芯

嵌入式-老费,一个分享专业嵌入式知识的blog 2024

DOTS 性能基石:为什么传统 Unity 代码难以满足现代游戏需求?(DOTS 系列教程 · 第1篇)

本文探讨了Unity游戏开发中的性能优化问题,指出性能问题不应在最后才考虑,而应贯穿整个开发过程。文章分析了性能问题的三大表现(渲染开销、物理模拟、游戏逻辑),并解释了依赖硬件升级的不可行性。重点剖析了传统Unity代码性能低下的六大根源:垃圾回收卡顿、编译器优化不足、多核利用不足、数据结构和代码缓存不友好、过度抽象等问题。最后指出Unity项目中常见的反模式,如主线程垄断、内存碎片化等,为后续学习DOTS高性能架构解决方案奠定基础。

分享知识,拥抱变化 150

Lombok

Lombok介绍 Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。 Lombok使用方法 Lombok的使用跟引用jar包一样,可以在官网(https://projectlombok.org/download)下载jar包,也可以使用maven添加依赖: <dependency...

Kevin's life 4982

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LomBok在idea的安装以及lombok使用简介

LomBok在idea的安装以及lombok使用简介 和其他语言相比, Java经常因为不必要的冗长被批评。 Lombok提供了一系列注解用以在后台生成模板代码,将其从你的类中删除,从而有助于保持你的代码整洁。较少的模板意味着更简洁的代码,更易于阅读和维护。在本文中,我将涉及我经常使用的 Lombok功能,并想你展示如何使用他们生产更清晰、更简洁的代码。 1.LomBok插件在idea的安装 ...

QR 5899

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LomBok使用讲解

当我调试程序项目代码到调用Mybatis的插入SQL对应的方法的时候时,我看到NMetaVerify对象的nMetaType属性还是有数据的,但是执行插入之后,数据库的nMetaType就是一直是null,原先我以为是我的枚举类型写法不正确,看了下别的同样具有枚举类型的细分,也是正常能插入到数据库当中的,这更让我感觉到疑惑了。可以以链的形式调用;顶级类Object⾥⾯的⽅法,所有类都是继承Object的,返回值int类型根据⼀定的hash规则(存储地址,字段,或者⻓度等),映射成⼀个数值,即散列值。

Happy_lifer的博客 4551

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Lombok安装及Spring Boot集成Lombok

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

逆天子陆离的博客 5345

Lombok介绍

本文简单介绍了Lombok的使用

m0_48944689的博客 2221

Lombok详细教程及idea中lombok插件的安装

一、背景 我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那java中有没有一种方式能够避免这种重复的劳动呢?答案是有,我们来看一下下面这张图,右面是一个简单的JavaBean,只定义了两个属性...

zhangmiaoping23的专栏 6596

lombok依赖 和 lombok插件

lombok依赖 和 lombok插件

bitcsljl的博客 1629

lombok

在 Java 中,如果你定义了任何带参构造函数,编译器就不会再自动提供默认的无参构造函数。在某些情况下(例如在与某些框架合作使用时,如 JPA),即使已经有带参构造函数,我们仍然需要一个无参构造函数,这时。通过以上步骤,您就可以在 Spring Boot 项目中使用 Lombok,以减少样板代码,提高开发效率。根据您的构建工具(Maven 或 Gradle),在您的项目中添加 Lombok 依赖。的使用和特性,可以更方便地管理对象的创建过程,特别是在使用某些要求无参构造的框架时。类生成一个无参构造函数。

- 1684

你干啥的?Lombok

01、Lombok 的自我介绍 Lombok 在官网是这样作自我介绍的: Project Lombok makes java a spicier language by adding ‘handlers’ that know how to build and compile simple, boilerplate-free, not-quite-java code. 说实话,我英文不太好(不...

沉默王二 3572
上一篇: Java AES加密 Illegal key size异常
下一篇: elasticsearch配置详解
架构师的清醒
博客等级 码龄14年 291粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值