nicelock--一個註解即可使用Redis分散式鎖!

IT利刃出鞘發表於2024-03-20
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>
nicelock--一個註解即可使用Redis分散式鎖!

2.配置Redis

本元件基於Redisson,要新增Redis相關配置,比如:

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: 222333
nicelock--一個註解即可使用Redis分散式鎖!

3.使用

@NiceLock(keys = {"#user.id", "#orderNo"})
public String createOrder(User user, String orderNo) {
    System.out.println("建立訂單");
    return "success";
}
nicelock--一個註解即可使用Redis分散式鎖!

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);
    }

}
nicelock--一個註解即可使用Redis分散式鎖!

2.配置大全

支援yml等配置方式。

配置

描述

預設值

suchtool.nicelock.keyPrefix

存到Redis裡的key的字首

nicelock

相關文章