首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Project Lombok编写Fat-free java代码

当初看公司里的代码,发现里面没有直接创建getter/setter,后来对比发现是使用了一个叫Lombok的库,但当初没仔细看过,直接按葫芦画瓢用上了。今天顺便补一下之前错过的知识。 ?...传统上,我最终在我的项目中投入大量时间在像  Google Guava 或  Joda Time (至少在java8之前的时代 )等的依赖关系上 。...在详细介绍之前,我想总结一下我特别重视在项目中使用Lombok的两个原因: Lombok有助于保持我的代码干净,简洁、扼要。...这里发生的事情很简单: 使用@Getter和@Setter我指示Lombok为所有属性生成getter和setter。这是因为我在类级别(class)使用了注解。...这些(当然还有其他的)与Lombok结合互补。我特别喜欢Immutables方法(the Immutables approach),并且也在一些项目中使用它。

1.5K10

为什么有的程序员不推荐使用Lombok!

在IDEA中安装方式如下: ? 二、导入相关依赖 Lombok 支持使用多重构建工具进行导入依赖,目前主要支持maven、gardle、ant等均支持。...强X队友 因为Lombok的使用要求开发者一定要在IDE中安装对应的插件。 如果未安装插件的话,使用IDE打开一个基于Lombok的项目的话会提示找不到方法等错误。导致项目编译失败。...更重要的是,如果我们定义的一个jar包中使用了Lombok,那么就要求所有依赖这个jar包的所有应用都必须安装插件,这种侵入性是很高的。...比如,我们想要知道某个类中的某个属性的getter方法都被哪些类引用的话,就没那么简单了。 有坑 因为Lombok使代码开发非常简便,这就使得部分开发者对其产生过度依赖。...但是到底建不建议在日常开发中使用,我其实保持一个中立的态度,不建议大家过度依赖,也不要求大家一定要彻底不用。

18.5K103
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    对不起,我加入敌方战队了

    用 Lombok 要在 IDEA 上安装插件,忽然发现我的 IDEA 上不知道啥时候已经安装了这个插件了,仔细回忆,想起来是某一次从网上下载了一个开源项目,对方使用了 Lombok,导致我在本地不得不安装一个...最近没办法,有一个项目一开始就用了 Lombok,我现在接手也不得不用,那么刚好趁此机会,松哥也来和大家聊一聊 Lombok 的使用吧。...创建成功后,项目中多了如下依赖: org.projectlombok lombok true 这就可以了,接下来我们就可以在项目中使用 Lombok 了。...@Cleanup:这个用在局部变量上,在变量使用结束时会自动调用 close 方法释放资源,典型用法就是 IO 流的相关操作中使用该注解。

    34610

    你有没有掉进去过这些 Lombok 的 “陷阱“

    一、Lombok 工具 Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok 提供了一组有用的注解,用来消除 Java 类中的大量样板代码。...通过添加注解就可以替换数百行代码从而产生干净,简洁且易于维护的Java 类。...解析单个小写字母的陷阱 对于 Lombok 生成的单个小写字母驼峰命名属性的 getter/setter 方法在进行序列化和反序列化的时候是无法被 JSON 工具以及 Spring 识别的,从而导致数据丢失...首先在 lombok-traps 项目的 pom.xml 文件中导入 jackson 的依赖 com.fasterxml.jackson.coreLombok 在生成 getter/setter 方法时会将属性名字母全部编程小写,导致在反序列化时报错。

    56720

    禁止触摸_lombok插件

    在IDEA中安装方式如下:  二、导入相关依赖 Lombok 支持使用多重构建工具进行导入依赖,目前主要支持maven、gardle、ant等均支持。...强X队友 因为Lombok的使用要求开发者一定要在IDE中安装对应的插件。 如果未安装插件的话,使用IDE打开一个基于Lombok的项目的话会提示找不到方法等错误。导致项目编译失败。...更重要的是,如果我们定义的一个jar包中使用了Lombok,那么就要求所有依赖这个jar包的所有应用都必须安装插件,这种侵入性是很高的。...比如,我们想要知道某个类中的某个属性的getter方法都被哪些类引用的话,就没那么简单了。 有坑 因为Lombok使代码开发非常简便,这就使得部分开发者对其产生过度依赖。...但是到底建不建议在日常开发中使用,我其实保持一个中立的态度,不建议大家过度依赖,也不要求大家一定要彻底不用。

    54850

    SpringBoot(四)SpringBoot中lombok使用

    lombok概述 lombok简介 Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写...,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。...SpringBoot中使用lombok 添加依赖 方法,toString方法,equals方法,hashCode方法,不带参数的构造方法 @Value : 用于注解final类 @Builder : 产生复杂的构建器api类...我的工具已经安装了该插件,所有在右侧是没有任何按钮的,如果你的工具没有安装该插件, 右侧会有一个绿色的按钮,按钮的内容则是Install,点击安装后重启Idea就可以了。

    1.3K90

    我要狠狠反驳“公司禁止使用Lombok”的观点!

    于是我不得不将所有的 Lombok 注解从项目源代码中清除,并使用 IDE 自带的功能生成 getter/setter,equals,hashCode,toString 以及构造器等方法,你也可以使用...但这终究会消耗你很多的时间。 我的反驳:很多公司一旦确定JDK版本在很长的时间都不会改变(比如银行项目很多都在用jdk1.6,你问他愿意升级到jdk11不?)...胁迫使用 当你的源代码中使用了 Lombok,恰好你的代码又被其他的人所使用,那么依赖你代码的人,也必须安装 Lombok 插件 (不管他们喜不喜欢),同时还要花费时间去了解 Lombok 注解的使用情况...Lombok 所以制,我们并不能操控,只有当你需要调试时才发现有一个奇怪的 “小强” 在等着你; 最后,在运行代码之前,所有 JavaBean 中的方法你只能想象他们长什么样子,你并不能看见。...虽然 Lombok 的依赖包并不大,但就因为其中一个地方使用了 Lombok,其余所有的依赖方都要强制加入 Lombok 的 Jar 包,这是一种入侵式的耦合,如果再遇上 JDK 版本问题,这将是一场灾难

    63730

    我要狠狠的反驳“公司禁止使用Lombok”的观点

    于是我不得不将所有的 Lombok 注解从项目源代码中清除,并使用 IDE 自带的功能生成 getter/setter,equals,hashCode,toString 以及构造器等方法,你也可以使用...但这终究会消耗你很多的时间。 我的反驳:很多公司一旦确定JDK版本在很长的时间都不会改变(比如银行项目很多都在用jdk1.6,你问他愿意升级到jdk11不?)...胁迫使用 当你的源代码中使用了 Lombok,恰好你的代码又被其他的人所使用,那么依赖你代码的人,也必须安装 Lombok 插件 (不管他们喜不喜欢),同时还要花费时间去了解 Lombok 注解的使用情况...Lombok 所以制,我们并不能操控,只有当你需要调试时才发现有一个奇怪的 “小强” 在等着你; 最后,在运行代码之前,所有 JavaBean 中的方法你只能想象他们长什么样子,你并不能看见。...虽然 Lombok 的依赖包并不大,但就因为其中一个地方使用了 Lombok,其余所有的依赖方都要强制加入 Lombok 的 Jar 包,这是一种入侵式的耦合,如果再遇上 JDK 版本问题,这将是一场灾难

    47970

    我要狠狠的反驳“公司禁止使用Lombok”的观点

    于是我不得不将所有的 Lombok 注解从项目源代码中清除,并使用 IDE 自带的功能生成 getter/setter,equals,hashCode,toString 以及构造器等方法,你也可以使用...但这终究会消耗你很多的时间。 我的反驳:很多公司一旦确定JDK版本在很长的时间都不会改变(比如银行项目很多都在用jdk1.6,你问他愿意升级到jdk11不?)...胁迫使用 当你的源代码中使用了 Lombok,恰好你的代码又被其他的人所使用,那么依赖你代码的人,也必须安装 Lombok 插件 (不管他们喜不喜欢),同时还要花费时间去了解 Lombok 注解的使用情况...Lombok 所以制,我们并不能操控,只有当你需要调试时才发现有一个奇怪的 “小强” 在等着你; 最后,在运行代码之前,所有 JavaBean 中的方法你只能想象他们长什么样子,你并不能看见。...虽然 Lombok 的依赖包并不大,但就因为其中一个地方使用了 Lombok,其余所有的依赖方都要强制加入 Lombok 的 Jar 包,这是一种入侵式的耦合,如果再遇上 JDK 版本问题,这将是一场灾难

    79230

    Lombok插件如此不好?但我选择继续使用…

    在使用Lombok的过程中首先需要IDE安装对应插件,然后pom文件中引入对应依赖,依赖的scope可设为provided的。...private int amount; } 通过@Data,在IDE在编译时会为该类的属性提供getter/setter方法、equals方法、hashcode方法和toString方法等。...胁迫使用 这个的确如此,在同一个项目当中,如果一个开发者使用Lombok,那么其他的开发者都必须使用。 但就个人而言,一个项目统一使用相同的规范,相同环境,相同的IDE本来不就是应该的吗?...就好比现在,我推荐团队使用阿里Java开发手册对应的插件一样,就为了规范代码,让大家写出的代码保持一致性。 代码耦合度增加 文章中提到一个模块使用了Lombok,其他依赖模板也必须使用,耦合性加大。...解释利用同上,如果使用maven构建的话可以给lombok的依赖加上true,这样lombok的依赖不会传递给引用的项目,而此模块的jar已经生成了getter/setter方法,并不影响使用。

    73920

    Spring Boot 最佳实践

    这些入门依赖项已与所需的依赖项捆绑在一起。...不要使用同一包的不同版本,如果存在多个依赖项,请始终使用 指定版本。 5.使用 Lombok 作为一名 Java 开发人员,我们可能听说过 Lombok 项目。...例如,我们可能在某些类(如实体、请求/响应对象、dtos 等)中使用大量的 getter 和 setter 行。...但如果你使用 Lombok,它只是一行,你可以根据你的要求使用@Data、@Getter 或@Setter。 我们也可以使用 Lombok 记录器注释。推荐@Slf4j。 检查此文件以供参考。...除此之外,我们还可以使用非常流行的@Autowired 注释来使用“字段注入”。 但我们强烈建议使用构造函数注入而不是其他类型。因为它允许应用程序在初始化时初始化所有必需的依赖项。

    19810

    Spring Boot 最佳实践

    这些入门依赖项已与所需的依赖项捆绑在一起。...不要使用同一包的不同版本,如果存在多个依赖项,请始终使用 指定版本。 5.使用 Lombok 作为一名 Java 开发人员,我们可能听说过 Lombok 项目。...例如,我们可能在某些类(如实体、请求/响应对象、dtos 等)中使用大量的 getter 和 setter 行。...但如果你使用 Lombok,它只是一行,你可以根据你的要求使用@Data、@Getter 或@Setter。 我们也可以使用 Lombok 记录器注释。推荐@Slf4j。...除此之外,我们还可以使用非常流行的@Autowired 注释来使用“字段注入”。 但我们强烈建议使用构造函数注入而不是其他类型。因为它允许应用程序在初始化时初始化所有必需的依赖项。

    25440

    优雅的Java工具库Lombok

    最近在公司的项目中看到了对于Lombok的应用,通过@Data注解标注POJO,省略了大量的getter/setter代码,原先冗长的POJO在瘦身之后直接变得干净、清爽,程序员再也不需要去关注那些长长的方法...Lombok还提供了delombok供生成Javadoc,delombok在运行时会将注解@Data转换成getter/setter方法,然后移除@Data注解,如果哪天不再需要Lombok,也只需要简单运行...,这里主要介绍稳定版本,因为试验版本的支持目前和IDE不是很好 @Getter/@Setter注解 @Getter/@Setter注解的作用就是为字段添加getter/setter方法,可标注在类上,也可标注在字段上...标注在类上表示所有的非静态(no-static)字段都会生成相应的getter/setter方法,标注在字段上表示只为这个字段生成,且会覆盖标注在类上的注解。可设置访问级别,默认为public。...方法一:将几十个字段都添加在构造函数中。简单粗暴,而且在构造函数中为字段初始化也能够保证对象能够正确创建。缺点就是几十个参数只会导致你在创建对象时记错参数的位置,导致不必要的麻烦。 方法二:依赖注入。

    1.2K20

    Gradle依赖管理:编译时和运行时依赖的区别

    以下是依赖管理对于项目的重要性的几个方面: 版本一致性: 确保项目中使用的所有依赖都是正确和兼容的版本,防止版本冲突导致的运行时错误。 安全性: 有时一些库可能会存在已知的安全问题。...因此,尽管手动处理依赖在一些小型或简单的项目中是可行的,但在大多数情况下,使用自动化的依赖管理工具,如Gradle,会更为高效和安全。 四....这些处理器在编译阶段是必要的,但在运行时并不需要它们,因为它们的工作已经完成了。例如,Lombok库就是这样的一个库,它在编译时生成getter和setter方法,但在运行时并不需要Lombok库。...这些依赖项为我们提供了必要的APIs和工具,以确保代码在编译时没有错误。而运行时依赖则是当应用运行时所需的库。它们确保在实际运行应用程序时,所有的功能都能够正确执行。...理解这些区别并正确管理这两种依赖是至关重要的,因为错误的依赖管理可能导致编译失败或运行时错误。 2)为何好的依赖管理对于项目成功至关重要 良好的依赖管理是软件项目成功的关键。

    27710

    Lombok!代码简洁神器还是代码“亚健康”元凶?

    一年以后,我开始对此产生顾虑,尤其是在我准备为开源的博客系统Una-Boot升级Java版本时,我才意识到Lombok自己掉入了一个戏法陷阱。...引入Lombok让我的项目一时爽,但一时爽的代价是随着项目推进,技术债务开始累积。 接下来,我将用几个大家耳熟能详的场景,重演自己是如何掉入Lombok的戏法陷阱。 爱的开始,恨的起源 ?...胁迫使用 当你的源代码中使用了Lombok,恰好你的代码又被其他的人所使用,那么依赖你代码的人,也必须安装Lombok插件(不管他们喜不喜欢),同时还要花费时间去了解Lombok注解的使用情况,如果不那么做...Lombok所控制,我们并不能操控,只有当你需要调试时才发现有一个奇怪的“小强”在等着你;最后,在运行代码之前,所有JavaBean中的方法你只能想象他们长什么样子,你并不能看见。...虽然Lombok的依赖包并不大,但就因为其中一个地方使用了Lombok,其余所有的依赖方都要强制加入Lombok的Jar包,这是一种入侵式的耦合,如果再遇上JDK版本问题,这将是一场灾难。 5.

    36320

    到底应不应该使用 lombok

    通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode() 和 equals()这样的方法以及以往用来分类各种 accessor和 mutator的大量时间。...lombok 就可以通过一行注释来实现所有的这些方法。lombok 可以做的不仅仅是这个,还可以通过注释 @Slf4j 来帮你实现自动定义 log。...IDEA 会提示你是不是在当前的项目中启用 lombok,你可以选择启用或者不启用。随后就是在代码中使用注释就可以了。如下面的代码,我们直接简化使用注解就可以了。...如果下面文章讨论的错误: Java 项目编译错误 Error:java: java.lang.ExceptionInInitializer就是因为 JDK 不兼容的问题导致的整个项目无法编译。...如果上游系统中提供的fegin client 使用了 lombok,那么下游系统必须也使用 lombok,否则会报错,上下游系统构成了强依赖。

    42640

    为什么要放弃 Lombok ?

    一年以后,我开始对此产生顾虑,尤其是在我准备为开源的博客系统Una-Boot升级Java版本时,我才意识到Lombok自己掉入了一个戏法陷阱。...引入Lombok让我的项目一时爽,但一时爽的代价是随着项目推进,技术债务开始累积。 接下来,我将用几个大家耳熟能详的场景,重演自己是如何掉入Lombok的戏法陷阱。...胁迫使用 当你的源代码中使用了Lombok,恰好你的代码又被其他的人所使用,那么依赖你代码的人,也必须安装Lombok插件(不管他们喜不喜欢),同时还要花费时间去了解Lombok注解的使用情况,如果不那么做...Lombok所控制,我们并不能操控,只有当你需要调试时才发现有一个奇怪的“小强”在等着你;最后,在运行代码之前,所有JavaBean中的方法你只能想象他们长什么样子,你并不能看见。...虽然Lombok的依赖包并不大,但就因为其中一个地方使用了Lombok,其余所有的依赖方都要强制加入Lombok的Jar包,这是一种入侵式的耦合,如果再遇上JDK版本问题,这将是一场灾难。 5.

    99920

    SpringBoot学习

    所以,我们使用SpringBoot构建一个项目,只需要引入所需框架的依赖,配置就可以交给SpringBoot处理了。除非你不希望使用SpringBoot的默认配置,它也提供了自定义配置的入口。...Lombok 什么是Lombok Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法 Lombok...),让lombok自动生成默认的getter / setter方法。...附带一个我使用的例子 import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; import...SpringBoot项目部署 步骤1 添加项目的pom.xml插件;在pom.xml要显式的加入插件spring-boot-maven-plugin,否则无法产生 jar 清单文件,导致打出来的 jar

    89611

    Lombok ...

    一年以后,我开始对此产生顾虑,尤其是在我准备为开源的博客系统Una-Boot升级Java版本时,我才意识到Lombok自己掉入了一个戏法陷阱。...引入Lombok让我的项目一时爽,但一时爽的代价是随着项目推进,技术债务开始累积。 接下来,我将用几个大家耳熟能详的场景,重演自己是如何掉入Lombok的戏法陷阱。...胁迫使用 当你的源代码中使用了Lombok,恰好你的代码又被其他的人所使用,那么依赖你代码的人,也必须安装Lombok插件(不管他们喜不喜欢),同时还要花费时间去了解Lombok注解的使用情况,如果不那么做...Lombok所控制,我们并不能操控,只有当你需要调试时才发现有一个奇怪的“小强”在等着你;最后,在运行代码之前,所有JavaBean中的方法你只能想象他们长什么样子,你并不能看见。...虽然Lombok的依赖包并不大,但就因为其中一个地方使用了Lombok,其余所有的依赖方都要强制加入Lombok的Jar包,这是一种入侵式的耦合,如果再遇上JDK版本问题,这将是一场灾难。 5.

    54310

    mybatisplus+swagger【后端专题】

    ⾏ 操作系统:Win10或者Mac苹果 创建新版SpringBoot2.X项⽬ https://spring.io/projects/spring-boot 在线构建⼯具 https://start.spring.io...第3集 Lombok插件玩转注解Setter/Getter实战 简介:讲解lombok的常见注解Set/Get实战 基于项目的实体类测试 User实体类 常见注解@Getter/@Setter 作用类上...Lombok的使用要求一定要在IDE中安装对应的插件,如果项目组中有一个人使用了Lombok则都要用 代码可读性,可调试性低,比如想知道某个类中的某个属性的getter方法都被哪些类引用 影响升级,如果升级到某个新版本的...,中间件设计的要求是解耦少依赖 业务项目实体类可以用,且用的时候知道对应的常见的注解原理 Lombok @Setter/@Getter @NonNull @NoArgsConstructor @AllArgsConstructor...已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,类似JPA但优于JPA 更多特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 ​ 损耗小:启动即会自动注入基本

    2.1K30
    领券