Lock4j 分布式锁封装b

@ Lock4j 注解和 @Transactional 注解,是先释放锁还是先提交事物呢。 加锁 开启事务 关闭事务 解锁

一、简介

Lock4j是一个分布式锁组件,它提供了多种不同的支持以满足不同性能和环境的需求,基于Spring AOP的声明式和编程式分布式锁,支持RedisTemplate、Redisson、Zookeeper。
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

二、特性

  • 简单易用,功能强大,扩展性强。
  • 支持redission, redisTemplate, zookeeper,可混用,支持扩展。
开源地址:

三、使用前准备

3.1 引入依赖

3.2 添加redis配置

四、注解属性介绍

notion image

五、简单使用

打开浏览器窗口,重复刷新访问:
成功获得锁访问结果:
抢占不到锁,Lock4j会抛出
异常,通过全局异常处理返回如下结果:

六、高级使用

6.1 自定义执行器Exector

在注解上直接指定特定的执行器:
@Lock4j(executor = CustomRedissonLockExecutor.class)

6.2 自定义分布式锁key生成器

6.3 自定义抢占锁失败执行策略

默认的锁获取失败策略为
com.baomidou.lock.DefaultLockFailureStrategy.

6.4 手动加锁释放锁

Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP