Lombok的简介

Lombok

一、Lombok的简介

  • 是一个在Java开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码而出现的插件,让编写的类更加简洁。
  • 以@Data为例
    在写实体类时,经常需要先定义变量

具体的请看

https://blog.csdn.net/qq_44196212/article/details/122319779

Lombok简介

官方介绍

spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

大概的意思:Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写settergetter或eques方法,同时可以自动化日志变量。

Lombok使用

Maven 依赖

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.18.4</version>

<scope>provided</scope>

</dependency>

安装插件

IDEA

可以在线安装lombok的插件

settings -> plugins -> 在搜索框输入lombok -> 安装

idea安装的话就ok了,以下为eclipse、sts安装lombok插件。

eclipse、sts

1.下载lombok.jar: https://projectlombok.org/download

2. 将lombok.jar拷贝到eclipse或sts安装的根目录下:

 

3.在eclipse、sts安装目录的ini(eclipse.ini、sts.ini)文件里边加入配置

-javaagent:lombok.jar

-Xbootclasspath/a:lombok.jar

4.在终端运行lombok.jar包(在eclipse或sts中第二步拷贝进去的jar包): java -jar lombok.jar,然后会弹出一个安装窗口

注意:如果没有出现如上两个勾选的选项,点击方框按钮去选择你的eclipse或sts安装目录即可,否则就点击install/udate即可。

如上图及为安装成功,重启一下eclipse、sts就可以了;如果还不可以,清理一下项目即可。

Lombok 常用注解

面介绍一下常用的几个注解:

  • @Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
  • @Getter 使用方法同上,区别在于生成的是getter方法。
  • @ToString 注解在类,添加toString方法。
  • @EqualsAndHashCode 注解在类,生成hashCode和equals方法。
  • @NoArgsConstructor 注解在类,生成无参的构造方法。
  • @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
  • @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
  • @Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
  • @Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);

Lombok工作原理

在Lombok使用的过程中,只需要添加相应的注解,无需再为此写任何代码。自动生成的代码到底是如何产生的呢?

核心之处就是对于注解的解析上。JDK5引入了注解的同时,也提供了两种解析方式。

  • 运行时解析

运行时能够解析的注解,必须将@Retention设置为RUNTIME,这样就可以通过反射拿到该注解。java.lang.reflect反射包中提供了一个接口AnnotatedElement,该接口定义了获取注解信息的几个方法,Class、Constructor、Field、Method、Package等都实现了该接口,对反射熟悉的朋友应该都会很熟悉这种解析方式。

  • 编译时解析

编译时解析有两种机制,分别简单描述下:

1)Annotation Processing Tool

apt自JDK5产生,JDK7已标记为过期,不推荐使用,JDK8中已彻底删除,自JDK6开始,可以使用Pluggable Annotation Processing API来替换它,apt被替换主要有2点原因:

  • api都在com.sun.mirror非标准包下
  • 没有集成到javac中,需要额外运行

2)Pluggable Annotation Processing API

JSR 269自JDK6加入,作为apt的替代方案,它解决了apt的两个问题,javac在执行的时候会调用实现了该API的程序,这样我们就可以对编译器做一些增强,javac执行的过程如下:

Lombok本质上就是一个实现了“JSR 269 API”的程序。在使用javac的过程中,它产生作用的具体流程如下:

  1. javac对源代码进行分析,生成了一棵抽象语法树(AST)
  2. 运行过程中调用实现了“JSR 269 API”的Lombok程序
  3. 此时Lombok就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
  4. javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块)

通过读Lombok源码,发现对应注解的实现都在HandleXXX中,比如@Getter注解的实现在HandleGetter.handle()。还有一些其它类库使用这种方式实现,比如Google Auto、Dagger等等。

Lombok的优缺点

优点:

  1. 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率
  2. 让代码变得简洁,不用过多的去关注相应的方法
  3. 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等

缺点:

  1. 不支持多种参数构造器的重载
  2. 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度
_深巷的猫
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Lombok简介
m0_46880425的博客
05-05 446
Lombok简介
Lombok简介、使用、工作原理、优缺点
qq_39367410的博客
09-23 908
大概的意思:Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。简而言之:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。
lombok介绍
pard的专栏
03-11 717
lombok 介绍 lombok提供了简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码;特别是相对于 POJO。我们的 业务代码中有很多的POJO类,每个POJO类都需要设置setter和getter方法。lombok可以通过添加注解来帮助我们在编译后 的class文件中添加getter和setter方法,而无需我们在源代码中添加getter和settter;具
科普文:Lombok使用及工作原理详解
最新发布
为无为,事无事,味无味。
07-31 1316
举例来说,现在有一个实现了Pluggable Annotation Processing API的程序A,那么使用javac编译时的具体流程如下: 1. javac编译器对源码进行分析,生成一个抽象的语法树(AST) 2. javac编译器运行A程序 3. A程序完成逻辑,一般是修改此语法树 4. javac使用修改后的语法树生成可执行的字节码文件 Lomok便是通过Pluggable Annotation Processing API来实现代码生成的。
lombok简介
顺其自然~专栏
12-23 461
是一个在Java开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码而出现的插件,让编写的类更加简洁。以@Data为例 在写实体类时,经常需要先定义变量 手写或者自动生成,get、set、ToString方法等等操作 也就是 而通过使用Lombok则可以大大减少人工操作的方面,只使用@Data 注解即可 Lombok注解简介 @NonNull : 用在成员方法或者构造方法的参数前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异
Lombok简介、使用、工作原理,springboot多租户架构
m0_64384350的博客
12-08 473
2.1添加maven依赖 2.2安装插件 2.3解决编译时出错问题 2.4示例 2.5常用注解 3.Lombok工作原理 4.Lombok的优缺点 1.Lombok简介 官方介绍 Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or e...
lombok.jar;lombok.jar
05-06
### Lombok简介 Lombok是一个开源项目,由Rogier van Wijk创建,其目标是通过提供一系列的注解来自动处理类的常规构建块。这些注解可以在编译时自动生成相应的代码,从而避免在源代码中手动编写这些繁琐的方法。 #...
Lombok的介绍和使用
蜗牛快跑的专栏
04-27 4014
背景 Lombok简介 Lombok安装 Eclipse的插件的安装步骤 IntelliJ IDEA插件的安装步骤 Lombok的使用 Getter and Setter ToString NoArgsConstructor and AllArgsConstructor EqualsAndHashCode Data背景在日常的开发中,有很多工作都是重复的,比如: - 我们会定义很多的domain实
Lombok介绍及使用方法
月亮的技术博客
06-01 523
Lombok介绍及使用方法 lombok简介 lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下。 lombok的官方地址:https://projectlombok.org/ lombok的Github地址:https://github.com/rzwitserloot/lombok 那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须
Lombok介绍及使用方法 lombok简介
shuang word
10-12 723
网上看到的资料,记录记录 https://yq.aliyun.com/articles/59972 Lombok介绍及使用方法 lombok简介 lombok的官方地址:https://projectlombok.org/ lombok的Github地址:https://github.com/rzwitserloot/lombok 那么lombo
Lombok超详解
qq_53317005的博客
11-16 9240
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString/构造方法;打印日志;I/O流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观,Lombok应运而生。LomBok可以通过注解,帮助开发人员消除JAVA中尤其是POJO类中的冗长代码。使用LomBok之前使用LomBok之后。
Lombok使用方法
wangshaoweiwswwsw的博客
08-14 327
Lombok以注解的方式帮助我们在定义一些类时消除一些必须有的代码,比如getter()和setter()方法等。 Lombok官方链接:https://projectlombok.org/ Lombok在线帮助文档:https://projectlombok.org/features/all Lombok Github地址:https://github.com/rzwitserloot/l...
Lombok插件详解(包含版本问题)
2301_79969279的博客
04-06 3262
Lombok是一个实用的Java类库,能够通过注解的形式自动生成构造器,getter/setter等,并且可以自动化生成日志变量,减少 Java 代码中的冗余和样板代码,简化Java开发,提高效率(setting,plugins中搜索Lombok插件(一般会自带))
lombok使用详解
qq_18846873的博客
09-28 316
lombok作为一个java插件,在java项目中应用很广泛,但是在不同的地方和场景下,要使用合适的注解,才能达到最好的效果,今天来分析下这个插件的原理和使用 在开发时,使用的步骤如下: 1、引入maven依赖: <dependency> <groupId>org.projectlombok</groupId> <artifactId&g...
写文章

热门文章

  • ffmpeg详细安装教程 14013
  • 抓取Bilibili哔哩哔哩网站视频(Java和Python双版本实现) 10792
  • MySQL 5.6 (Win7 64位)下载、安装与配置图文教程 9297
  • java.nio.charset.IllegalCharsetNameException 3999
  • SQL函数和存储过程的区别 2389

分类专栏

  • java 付费 9篇
  • okhttp 4篇
  • java执行js 1篇

最新评论

  • OkHttp 发送 HTTP/3 请求的示例代码

    ha_lydms: 每次阅读这个博客都像是一次心灵的洗礼,让我感到内心平静而充实。

  • 抓取Bilibili哔哩哔哩网站视频(Java和Python双版本实现)

    艾迪代价: 没有1080p就是没有登陆造成的

  • 抓取Bilibili哔哩哔哩网站视频(Java和Python双版本实现)

    艾迪代价: 我fork了一个项目,完善了代码,https://gitcode.com/wangkaijavaee/MingRepository/commits/detail/e4bbd502abcd6a7063b525e861d3f0004312aaa6?ref=master

  • 抓取Bilibili哔哩哔哩网站视频(Java和Python双版本实现)

    武哲蔚: 只有三种清晰度可能是因为你没有登录!

  • 抓取Bilibili哔哩哔哩网站视频(Java和Python双版本实现)

    咸觞八角: 大佬厉害表情包按照你的方法反复走了一下午终于成功了!表情包

最新文章

  • Content-Encoding: br
  • 状态码表示什么意思
  • Quartz定时调度CronTrigger时间配置格式说明与实例
2024年9篇
2023年15篇
2022年3篇
2021年12篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_深巷的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家兰州玻璃钢雕塑制造商玻璃钢雕塑最低报价卡通雕塑小黄人玻璃钢雕塑商场美陈布置方案书济宁彩绘玻璃钢雕塑贵州欧式玻璃钢雕塑多少钱商场心愿墙美陈新乡玻璃钢卡通雕塑厂家哪家好云南商场节庆美陈雕塑报价河西商场春季美陈黑河玻璃钢仿铜雕塑广州户外玻璃钢花盆花槽中山玻璃钢战马雕塑郑州多彩玻璃钢雕塑定制南京超市商场美陈玻璃钢踏浪飞马雕塑栖霞玻璃钢造型雕塑商场家电美陈布置湖南玻璃钢雕塑灯价格重庆商业广场玻璃钢卡通雕塑品牌商场美陈座椅中间的洞怎么处理怀柔玻璃钢海洋雕塑灌南玻璃钢雕塑梅州发光小品玻璃钢雕塑生产商景观玻璃钢卡通雕塑要求深圳户外商场美陈销售高要玻璃钢卡通雕塑玻璃钢店招雕塑遵义玻璃钢景观雕塑款式多样玻璃钢雕塑上白色香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化