Java学习——Lombok
以下是对Lombok的详细介绍及结合并发编程的完整项目示例,代码已通过Gradle集成Lombok并包含详细解析。
一、Lombok概述
1. 什么是Lombok?
Lombok是一个Java库,通过注解在编译时自动生成样板代码(如Getter/Setter、构造函数等),减少手动编写的重复代码,提升开发效率。其核心原理是利用注解处理器(Annotation Processor)在编译阶段修改AST(抽象语法树),直接生成字节码文件,不侵入运行时环境。
2. Lombok的核心作用
- 减少样板代码:自动生成
getter/setter
、toString()
、equals()
、构造函数等,使代码更简洁。 - 提升可维护性:避免手写代码错误(如
hashCode
实现不一致)。 - 增强可读性:聚焦业务逻辑而非重复代码。
二、常用注解详解
注解 | 作用 | 示例 |
---|---|---|
@Data | 生成所有字段的getter/setter、toString() 、equals() 、hashCode() | 替代整个POJO类的手写代码 |
@AllArgsConstructor | 生成全参数构造函数 | User(String name, int age) |
@NoArgsConstructor | 生成无参构造函数 | User() |
@Builder | 实现建造者模式 | User.builder().name("Tom").build() |
@SneakyThrows | 自动捕获并抛出受检异常(如IOException ) | 避免try-catch 块 |
@Synchronized | 生成线程安全的同步方法(基于私有锁对象) | 替代synchronized 关键字 |
完整注解列表见https://projectlombok.org/。
三、Gradle集成Lombok
在build.gradle
中添加依赖:
dependencies {// Lombok核心依赖compileOnly 'org.projectlombok:lombok:1.18.30'annotationProcessor 'org.projectlombok:lombok:1.18.30'// 并发支持implementation 'org.springframework.boot:spring-boot-starter-web'
}
注意:IDE需安装Lombok插件(如IntelliJ的
Lombok Plugin
)。
四、并发编程项目示例
项目场景
模拟多线程银行账户交易系统,使用Lombok简化模型类,并通过线程池处理并发转账。
代码结构
import lombok.*;
import java.util.concurrent.*;
import java.util.concurrent.locks.ReentrantLock;// 1. 使用Lombok生成账户模型
@Data
@AllArgsConstructor
@Builder
class BankAccount {private String id;private double balance;private final ReentrantLock lock = new ReentrantLock(); // 显式锁保证线程安全
}// 2. 转账任务(实现Callable)
@RequiredArgsConstructor
class TransferTask implements