spring-boot-klock-starter 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
spring-boot-klock-starter 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
spring-boot-klock-starter 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !

软件简介

spring-boot-klock-starter

基于redis的spring boot分布式锁组件,有了这个组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目。

快速开始

spring boot项目接入

1.添加lock starter组件依赖,目前还没上传到公共仓库,需要自己下源码build

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-klock-starter</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

2.application.properties配置redis链接:spring.klock.address=127.0.0.1:6379

3.在需要加分布式锁的方法上,添加注解@Klock,如:

@Service
public class TestService {

    @Klock(waitTime = Long.MAX_VALUE)
    public String getValue(String param) throws Exception {
        if ("sleep".equals(param)) {//线程休眠或者断点阻塞,达到一直占用锁的测试效果
            Thread.sleep(1000 * 50);
        }
        return "success";
    }
}

spring mvc项目接入

其他步骤和spring boot步骤一样,只需要spring-xx.xml配置中添加KlockAutoConfiguration类扫描即可,如:

<context:component-scan base-package="org.springframework.boot.autoconfigure.klock.KlockAutoConfiguration"/>

使用参数说明

配置参数说明

spring.klock.address  : redis链接地址
    spring.klock.password :redis密码
    spring.klock.database :redis数据索引
    spring.klock.waitTime :获取锁最长阻塞时间(默认:60,单位:秒)
    spring.klock.leaseTime:已获取锁后自动释放时间(默认:60,单位:秒)

@Klock注解参数说明

@Klock可以标注四个参数,作用分别如下

name:lock的name,对应redis的key值。默认为:类名+方法名

lockType:锁的类型,目前支持(可重入锁,公平锁,读写锁)。默认为:公平锁

waitTime:获取锁最长等待时间。默认为:60s。同时也可通过spring.klock.waitTime统一配置

leaseTime:获得锁后,自动释放锁的时间。默认为:60s。同时也可通过spring.klock.leaseTime统一配置

关于测试

工程test模块下,为分布式锁的测试模块。可以快速体验分布式锁的效果。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (9)

加载中
有前途
2019/04/19 18:55
回复
举报
这种只能到方法级别的分布式锁有何用,建议你先深入了解。好比用户想要一台iPhone,你却生产了一台锤子
2018/09/29 14:47
回复
举报
打分: 力荐
该评论暂时无法显示,详情咨询 QQ 群:912889742
mark
2018/01/30 10:39
回复
举报
打分: 很差
你的groupId和artifactId太霸气,不敢直视啊
2018/01/26 09:19
回复
举报
你的groupId和artifactId太霸气
2018/01/25 21:05
回复
举报
mARK
2018/01/02 22:58
回复
举报
打分: 力荐
666
2018/01/02 14:40
回复
举报
KL博主软件作者
打分: 力荐
哈哈,好东西要分享
2018/01/02 14:33
回复
举报
更多评论
发表于大前端专区
2019/04/19 17:42

klock 分布式锁重大更新

klock简介 基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目。基于注解驱动,支持spring Spel,方便的定义锁的key的粒度 本次更新内容 本次更新主要新增了【锁等待超时】和【锁持有超时】的处理策略,这两个参数是为了解决分布式锁的死锁问题而设置的,而增加这两个策略是为了在极端情况下锁失效时业务能够感知并处理。 因为基于redis实现分...

8
58
发表于大前端专区
2018/08/29 18:15

spring-boot-klock-starter 分布式锁 v1.2 版本发布

本次发版修复优化问题如下,有使用的建议更新 1.线程安全问题:在本地多线程,指定业务key的情况下,导致的线程安全问题 2.优化获取锁实例的方式 spring-boot-klock-starter 基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目 快速开始 spring boot项目接入 1.添加lock starter组件依赖,目前还没上传到公共仓库,需要自己下源码build <depe...

10
49
发表于大前端专区
2018/01/25 10:22

spring-boot-klock-starter V1.1 主体功能重大更新

spring-boot-klock-starter 基于redis的spring-boot分布式锁组件,使得项目拥有分布式锁能力变得异常简单,开箱即用。 此组件同样适用于spring mvc项目。 本次更新内容: 支持锁定方法入参的业务key 支持注解方式获取业务key 支持Spel获取业务key 具体使用方式如下: 使用场景描述: 本次更新主要解决,如果入参的value相同时需要加锁,入参的value不同的时候不加锁直接放行的场景; 开箱即用 1.添加lock starter组件依赖    ...

10
25
发表于大前端专区
2018/01/07 13:38

spring-boot-klock-starter V1.0 发布

spring-boot-klock-starter 基于redis的spring-boot分布式锁组件,使得项目拥有分布式锁能力变得异常简单,开箱即用。 感谢关注此项目的并提出宝贵意见的群众,此次首个稳定版本发布,修复以及新的特性如下 本次更新内容: 完善多线程下锁的释放 新增redis集群环境配置支持 完善测试用例 优化释放锁的方式 优化锁注解获取逻辑 开箱即用 1.添加lock starter组件依赖         <dependency>             <gr...

1
39
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/05/03 17:24

spring boot 分布式锁组件 spring-boot-klock-starter

基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目 快速开始 spring boot项目接入 1.添加lock starter组件依赖,目前还没上传到公共仓库,需要自己下源码build ,已上传到maven中央仓库 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-klock-starter</artifactId> <version>1.2-SNAPSHOT</version...

0
0
发表于软件架构专区
2018/01/02 00:00

spring-boot-klock-starter分布式锁项目开源

前言碎语 spring-boot-klock-starter是一个基于redis的分布式锁spring boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目, 使用和接入都非常简单方便,现开源出来,给所有需要分布式锁能力的项目提供一个方案 项目地址:https://gitee.com/kekingcn/spring-boot-klock-starter 快速开始 spring boot项目接入 1.添加lock starter组件依赖,目前还没上传到公共仓库,需要...

0
0
发表于服务端专区
2019/08/07 15:28

spring boot starter

spring boot stater: 原生spring boot系统包含了很多默认的starter。例如rabbit,jdbc等等。 都在spring-boot-autoconfigure中申明了。对应的spring.factories中都有相应的XXXAutoConfiguration的申明。在系统启动时候回主动去加载符合条件的Configuration完成初始化。 自动配置,基于java代码的bean配置,通过@Configuration,@Bean这两个注解一起使用可以创建一个基于java代码的配置,替代相应的xml配置。 在XXXAutoConfigurat...

0
0
发表于软件架构专区
2018/11/29 18:31

spring boot starter

推荐

0
0
发表了博客
2019/04/08 10:29

spring-boot-starter-parent 与 spring-boot-dependencies

Spring Boot的每个发布版本都会规划它所支持的依赖项。实际上,你不用指定这些依赖项的版本号,因为Spring Boot都为你管理好了。当更新Spring Boot时,会相应的更新依赖。 Maven管理依赖 Maven用户可以继承spring-boot-starter-parent项目,来获取最佳依赖。这个父项目提供了以下几个功能: 默认Java 1.6编译 UTF-8编码格式 依赖管理部分,可让你对公共依赖省略version标签。继承自spring-boot-dependencies POM。 良好的资源过...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
9 评论
74 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部