Skip to content

Ken-Chy129/idempotent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Idempotent

基于 Spring Boot + Redisson 的分布式幂等性组件,通过注解声明式地为接口添加幂等控制,防止重复请求。

功能特性

  • 注解驱动:在方法上添加 @Idempotent 注解即可启用幂等控制
  • 多种幂等类型
    • PARAM — 基于请求参数生成幂等键(默认)
    • TOKEN — 基于 Token 令牌机制
    • CUSTOM — 自定义幂等处理器
  • 灵活的拒绝策略
    • REJECTED — 直接拒绝重复请求(默认)
    • WAIT — 等待前一个请求完成后再执行
    • CUSTOM — 自定义拒绝策略
  • 分布式锁:基于 Redisson 实现,支持分布式环境
  • 细粒度 Key 控制:通过 @KeyBody@KeyParam@KeyProperty 注解精确指定幂等键的生成字段

技术栈

  • Java 17
  • Spring Boot 3.0
  • Redisson(分布式锁)
  • AspectJ(AOP 切面)

快速使用

@PostMapping("/order")
@Idempotent(type = IdempotentTypeEnum.PARAM, message = "订单正在处理中,请勿重复提交")
public Result createOrder(@KeyBody Order order) {
    // 业务逻辑
}

项目结构

src/main/java/cn/ken/idempotent/
├── annotations/          # 注解定义(@Idempotent, @KeyBody, @KeyParam, @KeyProperty)
├── autoconfigure/        # Spring Boot 自动配置
├── core/                 # 核心逻辑(AOP 切面、上下文、处理器工厂)
├── enums/                # 枚举(幂等类型、拒绝策略)
├── handler/              # 幂等处理器(参数型、Token 型)
├── exceptions/           # 异常定义
└── demo/                 # 使用示例

About

基于 Spring Boot + Redisson 的分布式幂等性组件 | 注解驱动、参数/Token 幂等、可定制拒绝策略

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages