Lombok 基础

Lombok 基本注解

Lombok 高级注解

Lombok FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/lombok-intro.html

Lombok 介绍


Lombok(Project Lombok)是一个用于 Java 编程语言的开源库,旨在减少 Java 代码中的冗余和样板代码,提高开发人员的生产力。它通过使用注解来自动生成 Java 类的常见方法和代码,从而使开发人员能够编写更简洁、更具可读性和更易维护的代码。Lombok 的主要目标是简化 Java 开发,减少样板代码,使代码更加精炼,从而提高开发效率。

它利用注解方式自动生成 java bean 中 getter、setter、equals 等方法,还能自动生成 logger、toString、hashCode、builder 等 日志相关变量、Object 类方法或设计模式相关的方法,能够让你的 代码更简洁,更美观。

历史背景

Lombok 项目于 2009 年首次发布,最初是由荷兰人 Reinier Zwitserloot 创建的。它的目标是简化 Java 开发,尤其是在 Java 领域的项目中减少样板代码。Lombok 的思想受到了其他编程语言中的注解处理器和元编程的启发,它的出现是为了解决 Java 语言在某些方面的不足。

作用

Lombok 提供了多个注解,每个注解都用于生成特定的常见代码结构。

以下是一些常用的 Lombok 注解及其作用:

  • @Getter@Setter :用于自动生成类的 getter 和 setter 方法。
  • @NoArgsConstructor@AllArgsConstructor :生成无参和全参构造函数。
  • @ToString :生成 toString() 方法,方便对象的字符串表示。
  • @EqualsAndHashCode :生成 equals()hashCode() 方法。
  • @Data :结合了 @Getter@Setter@ToString@EqualsAndHashCode 等,生成全套常见方法。
  • @Builder :生成 Builder 模式相关的代码,用于构建不可变对象。
  • @Value :生成不可变类,所有字段都是 final 的,适合创建值对象。
  • @Slf4j :自动生成 Slf4j 日志记录器。

通过使用这些注解,开发人员可以减少冗余的代码编写,提高代码质量,并降低了出错的机会。

引入

Maven

lombok 是一个 jar 包,maven 中引入如下依赖即可:

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

scope 可以是 provided,即只在编译和测试阶段生效,运行阶段已经编译好或容器提供即可。

Gradle

gradle 引入 lombok 示例如下:

repositories {
	mavenCentral()
}

dependencies {

	compileOnly 'org.projectlombok:lombok:1.18.16'
	annotationProcessor 'org.projectlombok:lombok:1.18.16'

	testCompileOnly 'org.projectlombok:lombok:1.18.16'
	testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'

}

也是只在编译和测试阶段生效即可。

总结

总之,Lombok 是一个有助于减少 Java 代码冗余和提高开发效率的强大工具。它的使用可以显著简化 Java 开发过程,提高代码的可读性和可维护性,从而让开发人员能够更专注于业务逻辑而不是样板代码。