一、定义分布式锁的名称为:StriveLock,注解使用方式如下:
@Override
@Async
@StriveLock(key = "#person.name", block = true)
public void printPersonForRedisLock(Person person) {
try {
Thread.sleep(10000);
log.info(JSONUtils.obj2Json(person));
} catch (Exception e) {
log.error("单元测试printPerson错误", e);
}
}
当有person.name 相同的名称同时访问这个方法时,只能一个一个的执行,等前面一个调用执行完成后才能再次执行相同person.name的方法调用。
二、代码实现
1、定义StriveLock注解
package com.fight.strive.sys.modules.lock.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import ja
本文介绍了如何在Spring Boot中使用StriveLock注解实现Redis分布式锁。内容包括注解定义、异常处理、服务接口及实现、切面处理等。在分布式环境中,当synchronized无法满足线程同步需求时,StriveLock提供了解决方案。源代码可在strive开发框架的Gitee仓库中查看。
订阅专栏 解锁全文
&spm=1001.2101.3001.5002&articleId=109102125&d=1&t=3&u=48fef19c53f24cd1b9ba848814dbc975)
970

被折叠的 条评论
为什么被折叠?



