spring-boot-lock-starter 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
spring-boot-lock-starter 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
spring-boot-lock-starter 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
spring-boot-lock-starter 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
spring-boot-lock-starter 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持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";
    }
}

  1. 支持锁指定的业务key,如同一个方法ID入参相同的加锁,其他的放行。业务key的获取支持Spel,具体使用方式如下 输入图片说明

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,单位:秒)
    spring.klock.cluster-server.node-addresses :redis集群配置 如 127.0.0.1:7000,127.0.0.1:7001,127.0.0.1:7002
    spring.klock.address 和 spring.klock.cluster-server.node-addresses 选其一即可

@Klock注解参数说明

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

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

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

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

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

代码

的 Gitee 指数为
超过 的项目

评论 (4)

加载中
不是官方的组件啊?
2019/02/12 16:23
回复
举报
这种命名有病是咋的 冒充官方 还是小白
2018/09/22 08:40
回复
举报
不是spring官方的东西就不要用org.springframework.boot这样的groupId
2018/09/22 08:11
回复
举报
不错,支持一下
2018/09/21 12:29
回复
举报
更多评论
暂无内容
2018/04/03 09:48

Spring Boot--自定义Starter之spring-boot-starter-quartz

痛点 在Spring中使用计划任务,有两种方案可供选择:一、用Spring原生的计划任务,使用起来非常简单,只需要用到@Scheduled注解即可;二、集成Quartz来做计划任务,需要配置大量的Quartz原生类。 对于第一种来说,...

0
4
发表于开发技能专区
2019/08/07 15:28

spring boot starter

spring boot stater: 原生spring boot系统包含了很多默认的starter。例如rabbit,jdbc等等。 都在spring-boot-autoconfigure中申明了。对应的spring.factories中都有相应的XXXAutoConfiguration的申明。在系统启动......

0
0
发表了博客
2020/10/16 08:51

spring-boot-starter-web与spring-boot-starter-webflux区别

目录 区别 区别 对于servlet堆栈应用程序,spring-boot-starter-web通过包含spring-boot-starter-tomcat来包括Tomcat,但是可以改用spring-boot-starter-jetty或spring-boot-starter-undertow。 对于反应堆应用程序,spring-boot-starter-webflux通过包含spring-boot-starter-reactor-netty来包含Reactor Netty,但是我们...

0
0
2018/09/20 22:27

spring-boot-lock-starter基于redis的分布式锁实现

一、软件介绍 spring-boot-lock-starter 是基于redis实现的简单分布式锁。软件面向接口编程,同时兼顾基于zk或者其他实现的方便扩展。基于redis的分布式锁实现,主要依赖以reids 的set命令 和get del 的lua脚本。...

0
0
2020/01/11 23:31

[Spring Boot] 自定义 Spring Boot Starter

[Spring Boot] 自定义 Spring Boot Starter 简介 在了解了Spring Boot的自动装配原理后,我们来实现一个Spring Boot常见的Starter项目 准备工作summer-boot-hello-starter 定义申明自动装配配置类Starter 定义申明......

0
0
发表于开发技能专区
2018/11/29 18:31

spring boot starter

推荐

0
0
发表了博客
2019/05/28 09:40

Spring Boot 自定义 starter

文章首发于微信公众号《程序员果果》 地址:https://mp.weixin.qq.com/s/F_1j-ng49QNlbj04Q9bqFQ 一、简介 SpringBoot 最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我们通过引入sprin...

0
0
发表了博客
2019/03/20 11:48

Spring Boot 自定义 starter

##一、简介 SpringBoot 最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我们通过引入springboot 为我提供的这些场景启动器,我们再进行少量的配置就能使用相应的功能。即使是这样,springboot也不能囊括我们所有的使用场景,往往我们需要自定义starter,来简化我们对springboot的使用。 ##二、如...

0
0
发表了博客
2018/04/09 11:30

Spring Boot Starter列表

转自:http://blog.sina.com.cn/s/blog_798f713f0102wiy5.html Spring Boot Starter 基本的一共有43种,具体如下: 1)spring-boot-starter   这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。 2)spring-boot-starter-amqp   通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol)。 ...

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编码格...

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