Springboot 整合 Lock4j
2025年11月10日大约 1 分钟
简介
Lock4j 是分布式锁抽象框架,它相当于一个门面,提供统一API,支持多种实现(Redis、ZooKeeper、MySQL等)。这里我们演示使用 Lock4j + Redisson 实现注解式分布式锁。
pom.xml
<!-- 版本管理 -->
<properties>
<lock4j-redisson.version>2.2.6</lock4j-redisson.version>
</properties>
<!-- 引入 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>lock4j-redisson-spring-boot-starter</artifactId>
<version>${lock4j-redisson.version}</version>
</dependency>application.yml
spring:
redis:
host: 127.0.0.1
...
# 全局默认的获取锁超时时间和锁过期时间
lock4j:
acquire-timeout: 3000 # 默认值3s,可不设置
expire: 30000 # 默认值30s,可不设置
primary-executor: com.baomidou.lock.executor.RedisTemplateLockExecutor # 默认redisson>redisTemplate>zookeeper,可不设置
lock-key-prefix: lock4j # 锁key前缀, 默认值lock4j,可不设置使用案例
@Service
public class DemoService {
//默认获取锁超时3秒,30秒锁过期
@Lock4j
public void simple() {
//do something
}
//完全配置,支持spel
@Lock4j(keys = {"#user.id", "#user.name"}, expire = 60000, acquireTimeout = 1000)
public User customMethod(User user) {
return user;
}
}提示
Lock4j 使用非常简单,喜欢注解式编程并需要快速集成分布式锁可以使用它,但是不知道为啥 Github 上面 Star 很少。需要最完整的 Redis 功能和复杂的锁特性,使用 Redisson 是首选。

