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...
文章列表
王小扬博客
云原生
Git
Elasticsearch
Apollo
产品
Think
生活技巧
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP
AI