rlock-spring-boot


License

License

Categories

Categories

Spring Boot Container Microservices
GroupId

GroupId

com.github.dawn9117
ArtifactId

ArtifactId

rlock-spring-boot
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

pom
Description

Description

rlock-spring-boot
rlock-spring-boot
Project URL

Project URL

https://projects.spring.io/spring-boot/#/spring-boot-starter-parent/rlock-spring-boot
Source Code Management

Source Code Management

https://github.com/dawn9117/rlock-spring-boot-starter

Download rlock-spring-boot

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.dawn9117/rlock-spring-boot/ -->
<dependency>
    <groupId>com.github.dawn9117</groupId>
    <artifactId>rlock-spring-boot</artifactId>
    <version>1.1.0</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.dawn9117/rlock-spring-boot/
implementation 'com.github.dawn9117:rlock-spring-boot:1.1.0'
// https://jarcasting.com/artifacts/com.github.dawn9117/rlock-spring-boot/
implementation ("com.github.dawn9117:rlock-spring-boot:1.1.0")
'com.github.dawn9117:rlock-spring-boot:pom:1.1.0'
<dependency org="com.github.dawn9117" name="rlock-spring-boot" rev="1.1.0">
  <artifact name="rlock-spring-boot" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.github.dawn9117', module='rlock-spring-boot', version='1.1.0')
)
libraryDependencies += "com.github.dawn9117" % "rlock-spring-boot" % "1.1.0"
[com.github.dawn9117/rlock-spring-boot "1.1.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • rlock-spring-boot-starter
  • rlock-spring-boot-autoconfigure
  • rlock-spring-boot-samples

rlock-spring-boot-starter

基于Redisson的分布式锁starter

特别提示: 配置项使用优先级(1 > 2 > 3):

    1. 优先使用通过 RedissonProperties.config 指定的配置
    1. 配置文件中 spring.redis 前缀的配置
    1. 默认配置

默认的锁会使用WatchDog自动延长锁的持有时间, 且无限等待获取锁, 如需修改, 可修改@Rlock中的参数

简介

该项目主要利用Spring Boot的自动化配置特性来实现快速的将redis分布式锁引入spring boot应用,简化Redisson的操作。

源码地址

GitHub:https://github.com/dawn9117/rlock-spring-boot-starter

小工具一枚,欢迎使用和Star支持,如使用过程中碰到问题,可以提出Issue,我会尽力完善该Starter

版本基础

  • spring-boot-starter-parent: 2.2.4.RELEASE
  • redisson: 3.12.0
  • fastjson: 1.2.62
  • commons-collections4: 4.3
  • commons.lang3: 3.9

如何使用

在该项目的帮助下,我们的Spring Boot可以轻松的引入redis分布式锁,主需要做下面两个步骤:

step1. 在pom.xml中引入依赖:

<dependency>
  <groupId>com.github.dawn9117</groupId>
  <artifactId>rlock-spring-boot-starter</artifactId>
  <version>${version}</version>
</dependency>

step2. 根据需求配置参数

参考:

  • com.github.dawn9117.rlock.config.RlockProperties
  • org.springframework.boot.autoconfigure.data.redis.RedisProperties
  • org.redisson.config.Config

step3. 在需要加分布式锁的方法上增加@Rlock注解

@Service
public class UserService implements IUserService {

	@Rlock(keys = "#user.name")
	@Override
	public User add(User user) {
		// do something
		return user;
	}
	
}

锁说明: 默认使用ReentrantLock(可通过LockModal指定)
规则如下(key构建规则可自定义, 参考 com.github.dawn9117.rlock.core.lock.name.LockNameBuilder):

  • 注解未指定keys: prefix + 项目名称 + 类全路径 + 方法名, 例如: /locks/project/com.github.dawn.UserService/add
  • 指定keys: prefix + 项目名称 + 类全路径 + 方法名 + key, 例如 /locks/project/com.github.dawn.UserService/add/zhangsan
  • SPEL: prefix + 项目名称 + 类全路径 + 方法名 + SPEL, 例如 @Rlock("#param1"): /locks/project/com.github.dawn.UserService/add/解析#param1得到的值

Versions

Version
1.1.0
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.2
1.0.1
1.0.0