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 开发过程,提高代码的可读性和可维护性,从而让开发人员能够更专注于业务逻辑而不是样板代码。