本文介绍: 在项目中,经常需要使用Redisson分布式锁来保证并发操作的安全性。在未引入基于注解的分布式锁之前,我们需要手动编写获取锁、判断锁、释放锁的逻辑,导致代码重复且冗长。为了简化这一过程,我们引入了基于注解的分布式锁,通过一个注解就可以实现获取锁、判断锁、处理完成后释放锁的逻辑。这样可以大大简化代码,提高开发效率。
前言
在项目中,经常需要使用Redisson
分布式锁来保证并发操作的安全性。在未引入基于注解的分布式锁之前,我们需要手动编写获取锁、判断锁、释放锁的逻辑,导致代码重复且冗长。为了简化这一过程,我们引入了基于注解的分布式锁,通过一个注解就可以实现获取锁、判断锁、处理完成后释放锁的逻辑。这样可以大大简化代码,提高开发效率。
目标
使用@DistributedLock
即可实现获取锁,判断锁,处理完成后释放锁的逻辑。
涉及知识
代码实现
引入依赖
注解类
切面类
统一异常处理类
使用示例
1. 无参方法或者需要加方法级的锁
调用接口:http://localhost:8080/helloWorld
可以看到,无参方法的key为HelloController:helloWorld:
,其中HelloController
为类名,helloWorld
为方法名,因为是无参方法,所以没有接下来的参数。
这时候,再次调用改接口,则不会再进去接口,会被切面类直接拦截,返回如下结果:
2. 有参数方法,其中key从name中取值
3. 有参数方法,其中key需要从user对象中获取name
4.有参数方法,其中key从name上取值并指定前缀
最后
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。