# Spring状态机 **Repository Path**: summerHappy/spring-state-machine ## Basic Information - **Project Name**: Spring状态机 - **Description**: Spring 状态机是一个强大的框架,用于实现基于状态模式的应用逻辑。它基于 UML 状态机标准,提供了简洁的 API 来建模和管理复杂的状态转换。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-19 - **Last Updated**: 2025-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: 借鉴 ## README # Spring状态机 #### 介绍 ## spring-statemachine-starter Spring 状态机是一个强大的框架,用于实现基于状态模式的应用逻辑。它基于 UML 状态机标准,提供了简洁的 API 来建模和管理复杂的状态转换。 **核心概念** >1.状态(State):系统可能处于的各种情况,例如 ORDER_CREATED、PAYMENT_SUCCESS。 >2.事件(Event):触发状态转换的操作,例如 PAY、CANCEL。 >3.转换(Transition):状态之间的变化,由事件触发。 >4.动作(Action):转换过程中执行的操作。 >5.守卫(Guard):决定转换是否可以发生的条件。 **配置规则** **持久化** **状态转变监听器** **输出结果** 2025-09-26 14:25:13.066 INFO 16952 --- [nio-5657-exec-8] c.example.service.impl.OrderServiceImpl : 1.启动状态机 2025-09-26 14:25:13.067 INFO 16952 --- [nio-5657-exec-8] c.example.service.impl.OrderServiceImpl : 2.触发从持久化存储获取原状态 2025-09-26 14:25:13.068 INFO 16952 --- [nio-5657-exec-8] c.e.config.OrderStateMachineConfig : 3.此处直接获取order中的状态:待支付 2025-09-26 14:25:13.068 INFO 16952 --- [nio-5657-exec-8] c.example.service.impl.OrderServiceImpl : 4.构建事件消息,并携带订单信息 2025-09-26 14:25:13.068 INFO 16952 --- [nio-5657-exec-8] c.example.service.impl.OrderServiceImpl : 5.发送事件 2025-09-26 14:25:13.069 INFO 16952 --- [nio-5657-exec-8] com.example.config.OrderStateListener : 6.状态转换监听:支付,状态机反馈信息:Order(id=1, status=1) 2025-09-26 14:25:13.069 INFO 16952 --- [nio-5657-exec-8] com.example.config.OrderStateListener : 7.对象属性赋值,注意还未修改数据库(也可以在此处修改数据库):Order(id=1, status=2) 2025-09-26 14:25:13.069 INFO 16952 --- [nio-5657-exec-8] com.example.config.OrderStateListener : 8.状态转换监听:支付,状态机变化新状态:待发货 2025-09-26 14:25:13.069 INFO 16952 --- [nio-5657-exec-8] com.example.config.OrderStateListener : 9.其他业务 2025-09-26 14:25:13.069 INFO 16952 --- [nio-5657-exec-8] c.example.service.impl.OrderServiceImpl : 10.触发持久化存储状态 2025-09-26 14:25:13.077 INFO 16952 --- [nio-5657-exec-8] c.e.config.OrderStateMachineConfig : 11.进行持久化操作,状态为:待发货