diff --git a/README.md b/README.md index ae2fb0d62e159aa842935398a38aed9ac38b8492..55170a276560a880a5ae0161f8f4dd32cf56a319 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,84 @@ -# 介绍 -locker-solon-plugin是一个基于Redisson的分布式锁插件,可以让Solon应用支持分布式锁。 -前置依赖是redisson-solon-plugin -redis配置方式可以参考[redisson-solon-plugin](https://solon.noear.org/article/533) - -# 如何使用 -## 1. 添加依赖 -在pom.xml中添加如下依赖: -``` +该项目是一个基于Java的分布式锁组件,适用于 Solon 框架,主要通过注解和代码两种方式实现操作级别的锁控制。以下是项目的 README.md 文件内容: + +--- + +# JLE Locker + +## 介绍 +JLE Locker 是一个基于 Solon 框架的分布式锁组件,支持通过注解和编程方式实现分布式锁机制,适用于需要在分布式环境下控制资源访问的场景。 + +该组件基于 Redisson 实现,提供了灵活的配置选项,包括日志记录、锁的默认释放时间以及是否启用锁功能。 + +## 如何使用 + +### 1. 添加依赖 +在 `pom.xml` 中添加以下依赖以引入 JLE Locker: + +```xml - top.jim-lee - locker-solon-plugin - 1.0.1 + top.jle + solon-locker + 1.0.0 ``` -## 2. 注解方式 -在需要加锁的方法上添加@OperationLock注解,并指定参数: -``` -@OperationLock( - expression = "${id}", // Solon EL表达式,用于指定锁的范围 - lockKeyPrefix = "doSomeThingLock", // 前缀,默认是Solon.cfg().appName() 若appName为固定为lock - releaseTime = 10 // 自动释放锁的时间,单位秒,默认是30秒 -) -public void doSomeThing(Long id) { - //do something + +确保你已经在项目中引入了 Solon 和 Redisson 的相关依赖。 + +### 2. 注解方式 +使用 `@OperationLock` 注解来对方法进行加锁控制: + +```java +import top.jle.locker.annotation.OperationLock; + +@Service +public class SomeService { + + @OperationLock + public void doSomething() { + // 需要加锁执行的业务逻辑 + } } ``` -## 3. 代码方式 -``` -public class Tests { - @Inject - Locker locker; //注入Locker接口 - - public void test() { - //定义前缀、锁名称、自动释放时间 - locker.lock("prefix","lock", 1000, () -> { - // do something - }); - //定义锁名称、自动释放时间,采用默认前缀 - locker.lock("lock", 1000, () -> { - // do something - }); - //定义锁名称,采用默认前缀及默认自动释放时间 - locker.lock("lock", () -> { - // do something - }); + +### 3. 代码方式 +也可以通过编程方式手动加锁: + +```java +import top.jle.locker.integration.Locker; +import org.springframework.stereotype.Service; + +@Service +public class SomeService { + + private final Locker locker; + + public SomeService(Locker locker) { + this.locker = locker; } + public void doSomething() { + locker.lock("lockKey", () -> { + // 需要加锁执行的业务逻辑 + }); + } } ``` -# 相关配置 -``` -locker: - enable: true #是否启用分布式锁 - log: true #是否打印日志 level: info - defaultReleaseTime: 30 #默认锁释放时间,单位秒 +## 相关配置 +在 `application.properties` 或 `locker.properties` 中配置以下参数: + +```properties +# 是否启用锁功能 +locker.enable=true + +# 是否打印锁相关日志 +locker.log=true + +# 锁的默认释放时间(单位:毫秒) +locker.defaultReleaseTime=5000 ``` + +如需自定义 Redisson 客户端配置,请参考 `RedissonConfig` 类中的配置方式。 + +## 许可证 +本项目遵循 Apache-2.0 协议。详情请查看 [LICENSE](LICENSE) 文件。 \ No newline at end of file