什么是Lombok?

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。

如何使用Lombok?

1.在idea中安装插件

2.导入架包

没有使用maven需要导入架包

架包地址

如果使用了maven就直接导入依赖就行了

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version><scope>provided</scope>
</dependency>

3.在具体实体类中添加具体注解
常用注解:

  • @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变量,严格意义来说是常量。

Lombok的优缺点

优点:

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

不支持多种参数构造器的重载
虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度

总结

Lombok虽然有很多优点,但Lombok更类似于一种IDE插件,项目也需要依赖相应的jar包。Lombok依赖jar包是因为编译时要用它的注解,为什么说它又类似插件?因为在使用时,eclipse或IntelliJ IDEA都需要安装相应的插件,在编译器编译时通过操作AST(抽象语法树)改变字节码生成,变向的就是说它在改变java语法。它不像spring的依赖注入或者mybatis的ORM一样是运行时的特性,而是编译时的特性。这里我个人最感觉不爽的地方就是对插件的依赖!因为Lombok只是省去了一些人工生成代码的麻烦,但IDE都有快捷键来协助生成getter/setter等方法,也非常方便。

知乎上有位大神发表过对Lombok的一些看法:

这是一种低级趣味的插件,不建议使用。JAVA发展到今天,各种插件层出不穷,如何甄别各种插件的优劣?能从架构上优化你的设计的,能提高应用程序性能的 ,
实现高度封装可扩展的..., 像lombok这种,像这种插件,已经不仅仅是插件了,改变了你如何编写源码,事实上,少去了代码你写上去又如何?
如果JAVA家族到处充斥这样的东西,那只不过是一坨披着金属颜色的屎,迟早会被其它的语言取代。
虽然话糙但理确实不糙,试想一个项目有非常多类似Lombok这样的插件,个人觉得真的会极大的降低阅读源代码的舒适度。

虽然非常不建议在属性的getter/setter写一些业务代码,但在多年项目的实战中,有时通过给getter/setter加一点点业务代码,能极大的简化某些业务场景的代码。所谓取舍,也许就是这时的舍弃一定的规范,取得极大的方便。

我现在非常坚信一条理念,任何编程语言或插件,都仅仅只是工具而已,即使工具再强大也在于用的人,就如同小米加步枪照样能赢飞机大炮的道理一样。结合具体业务场景和项目实际情况,无需一味追求高大上的技术,适合的才是王道。

Lombok有它的得天独厚的优点,也有它避之不及的缺点,熟知其优缺点,在实战中灵活运用才是王道。

Lombok使用以及优缺点相关推荐

  1. Mybatis学习笔记(上)

    Mybatis 目录 Mybatis 1.简介 1.1 什么是Mybatis 1.2 持久层 1.3 持久层 1.4 Mybatis存在理由 2. 第一个Mybatis程序 2.1搭建环境 2.2创建 ...

  2. Lombok简介、使用、工作原理、优缺点(转载)

    文章转载:https://www.jianshu.com/p/453c379c94bd Lombok简介.使用.工作原理.优缺点 1.Lombok简介 官方介绍 Project Lombok is a ...

  3. 【工具类库】Lombok简介、使用、工作原理、优缺点--最全一篇Lombok使用讲解及原理真香啊

    文章目录 简介 官方介绍 Lombok使用 IntelliJ 安装 Lombok 添加maven依赖(导入 lombok 包) 解决编译时出错问题 Lombok 注解大全说明 Lombok 代码示例 ...

  4. Lombok优缺点和总结

    Lombok优点 能通过注解的形式自动生成构造器.getter/setter.equals.hashcode.toString等方法,提高了一定的开发效率让代码变得简洁,不用过多的去关注相应的方法,属 ...

  5. 听说用 Lombok 可以早点下班?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:分享一个牛逼的 Java 开源后台管理系统,不要造轮子了!个人原创+1博客:点击前往,查看更多 作者:武培轩 出 ...

  6. eclipse lombok插件安装_如果你是Java架构师或项目经理,项目技术会允许使用Lombok吗?

    Lombok Lombok项目是一个Java库,通过注解,来消除Java类中的大量样板代码.比如常见的Getter&Setter.toString().构造函数等等. 看个例子,以前我们构建一 ...

  7. Java:Lombok插件用法笔记

    1.Lombok是什么东东? 官方介绍Lombok项目是一个Java库,它可以自动嵌入你的编辑器和构建工具中,从而减少你的代码量.永远不要再写另一个getter或equals方法,它带有一个注释的你的 ...

  8. lombok原理_听说学会用 Lombok 就可以让你早点下班?(你还不看)

    听说隔壁用 Lombok 的六点就下班了,我也想六点下班! 好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的? 在介绍之前,先通过是否使用 Lomb ...

  9. 99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏

    世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活. 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 ...

最新文章

  1. sshd服务java教程_Windows下安装OpenSSH服务教程
  2. 服务程序在c#中的写法
  3. caffe框架下目标检测——faster-rcnn实战篇问题集锦
  4. UWP学习——Plan final project(线下版)
  5. SpringBoot Mybatisplus 多数据源使用
  6. FID使用(Frechet Inception Distance score)
  7. 高质量的设计灵感社区网站
  8. 悬挂缩进 java,WORD上机练习题目
  9. javaweb中真分页案例
  10. JavaScript和JQuery获取DIV的值
  11. TeamViewer(TV)锁屏后黑屏无法远程的解决方法
  12. 迅雷下gho文件变成php,GHO格式文件转换成WIM格式文件
  13. java 中文url转码_对 url 中含有的中文进行转码操作
  14. php怎么显示好看的字体颜色,网页中字体颜色设置方法的总结
  15. 正则html标签sublime,sublimetext 使用正则表达式匹配中文
  16. 武汉纺织大学计算机考试在哪个校区,武汉纺织大学校区有几个 地址是什么
  17. 无线电波的波段划分和应用
  18. 使用img标签能使用background-size:conver一样的效果
  19. 个人能用的短信平台有哪些?看这一篇就够了
  20. US Domain Center域名注册| 域名注册商

热门文章

  1. 深入探究js中无所不在的this
  2. 经验总结-显示驱动常见的通用问题
  3. maven+mysql+con_ssm+redis+maven集成使用Jedis客户端demo
  4. S3DIS数据集的几个bug
  5. ITK入门教程(11)点集之创建一个点集
  6. UOS系统适配-常用开发工具安装
  7. 全球重力场模型数据下载
  8. 带分页存储管理系统中计算机应用自考,全国2012年4月高等教育自学考试计算机应用技术试题...
  9. 如何清理占用计算机内存,告诉你如何深度清理电脑内存
  10. android各个版本的新特性