nicelock是一个稳定、方便地分布式锁工具:一个注解,即可使用Java的分布式锁。(基于Redisson,非常稳定!)。

nicelock和lock4j是类似的工具。但lock4j有一个致命bug:释放锁有问题,经常会出现获取锁失败!而nicelock没有这个问题,而且有更多的功能,比如:可以指定超时时抛出的Exception的类型。

官网:https://www.yuque.com/knifeblade/opensource/nicelock

gitee:https://gitee.com/knifeedge/nicelock

github:https://github.com/knife-blade/nicelock

1.介绍

nicelock:一个注解,即可使用Java的分布式锁。(基于Redisson,稳定!)

2.快速使用

1.引入依赖

<dependency>
    <groupId>com.suchtool</groupId>
    <artifactId>nicelock-spring-boot-starter</artifactId>
    <version>{newest-version}</version>
</dependency>

 title=

2.配置Redis

本组件基于Redisson,要添加Redis相关配置,比如:

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: 222333

 title=

3.使用

@NiceLock(keys = {"#user.id", "#orderNo"})
public String createOrder(User user, String orderNo) {
    System.out.println("创建订单");
    return "success";
}

 title=

3.详细配置

1.执行顺序

默认情况下,本组件在@Transactional之前执行。你可以指定本组件的执行顺序,在SpringBoot的启动类上加如下注解即可:

@EnableNiceLock(order = 1)

比如:

package com.knife.example;

import com.suchtool.nicelock.annotation.EnableNiceLock;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableNiceLock(order = 1)
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

 title=

2.配置大全

支持yml等配置方式。

配置描述默认值
suchtool.nicelock.keyPrefix存到Redis里的key的前缀nicelock

IT利刃出鞘
4 声望0 粉丝