lombok详解和 Lombok 造成的翻车事故,太坑了!
970
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
Lombok详解和常见问题
简介
Lombok 是一个开源的代码生成库,旨在通过简单的注解形式简化 Java 类中的样板代码。它可以自动生成构造器、getter/setter、equals、hashCode 和 toString 方法,从而显著提高开发效率,尤其适用于需要大量属性的 JavaBean。
相关项目的 Git 地址为:zbbmeta-lombok-demo
安装与配置
要使用 Lombok,需要在 IDE 中安装相应的插件。以 IntelliJ IDEA 为例,插件安装步骤包括:进入设置页面,选择插件选项,搜索并安装 Lombok Plugin。
注意:部分版本的 IntelliJ IDEA 已默认安装 Lombok 插件。
常用注解
Lombok 提供多种注解以简化代码,例如:
- @Setter/@Getter:生成 setter/getter 方法。
- @ToString:生成 toString 方法。
- @EqualsAndHashCode:生成 equals 和 hashCode 方法。
- @NoArgsConstructor/@AllArgsConstructor/@RequiredArgsConstructor:生成不同类型的构造方法。
- @Data:综合生成 setter、getter、equals、hashCode 等方法。
- @Slf4j:生成日志变量。
- @Builder:支持建造者模式。
入门案例
通过创建 Maven 工程 zbbmeta-lombok-demo,配置 pom.xml 文件,创建数据库表和实体类,并使用 Lombok 注解简化开发过程。
示例中包括创建 User 类、UserController 控制器以及通过 HTTP 请求获取 User 表数据的具体操作。
常见问题
问题:Lombok 对于属性名的处理规则可能与 MyBatis 或其他规范不一致。例如,属性 sName 的 getter/setter 方法被生成为 getSName 和 setSName,而非符合 JavaBeans 规范的 getsName 和 setsName。
原因:MyBatis 解析方法时会将方法名中的 "get" 或 "set" 前缀移除,并根据属性名的首字母规则决定最终的属性名称。
解决方案:
- 修改属性名,让第二个字母小写,例如将
sName改为sname。 - 手动定义符合规范的 getter/setter 方法。
结论
Lombok 极大地简化了 Java 开发中的样板代码,但在使用时需注意与其他框架的兼容性问题。对于特殊场景,可以通过调整代码或手动定义方法来解决兼容性问题。
项目的详细代码和配置可参考 Git 地址:zbbmeta-lombok-demo。
springboot葵花宝典
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
白皮书上线