首页
学习
活动
专区
工具
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.4K10

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

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

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

对不起,加入敌方战队了

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

32210

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

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

44420

禁止触摸_lombok插件

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

52350

SpringBoot(四)SpringBoot中lombok使用

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

1.2K90

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

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

76330

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

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

56330

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

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

46070

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方法,并不影响使用。

68220

Spring Boot 最佳实践

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

16610

Spring Boot 最佳实践

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

20240

优雅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.1K20

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

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

9910

到底应不应该使用 lombok

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

37040

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

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

34820

为什么要放弃 Lombok

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

96620

Lombok ...

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

52410

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

80111

Lombok原理分析与功能实现

前言 这两天没什么重要事情做,但是想着还要春招总觉得得学点什么才,正巧想起来前几次面试时候面试官总喜欢问一些框架底层实现,但是学东西比较倾向于用到啥学啥,因此在这些方面吃了很大亏。...Lombok 代码 Lombok是一个开源项目,源代码托管GITHUB/rzwitserloot,如果需要在maven里引用,只需要添加下依赖: org.projectlombok...看上去是很方便一个功能,尤其是很多项目里有很多bean,每次都要手写或自动生成setter getter方法,搞得代码很长而且没有啥意义,因此这个对简化代码强迫症们还是很有吸引力。...项目依赖 由于比较习惯用maven,这里就用maven构建一下项目,修改下当前pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0...GetterProcessor类里通过messager打印<em>的</em>log,中间<em>的</em>是javap反编译<em>的</em>结果,最后一<em>行</em>表示测试调用<em>成功</em>。

40320
领券