Spring 状态机初探
一. spring statemachine
1. 枚举定义
public enum OrderStatus {
WAIT_PAYMENT, // 等待支付
WAIT_RECEIVE, // 等待收货
FINISH // 完成
}
public enum OrderEvent {
PAY, // 支付
RECEIVE // 收货
}
2. 添加配置
StateMachineConfigurerAdapter
[1] void configure(StateMachineStateConfigurer<OrderStatus, OrderStatusChangeEvent> states)
配置状态机 的初始状态和 所有状态集合
[2] void configure(StateMachineTransitionConfigurer<OrderStatus, OrderStatusChangeEvent> transitions)
配置状态机 状态转换逻辑, 包含 源状态, 目标状态 和 触发事件
[3] void configure(StateMachineConfigurationConfigurer<S, E> config)
可以配置 状态转换的 附加的动作 / 事件处理器
当然,还可以选择使用 Builder 模式构建状态机.
StateMachineBuilder # builder()
3. 实际使用
在实际使用状态机的过程中 需要配合 持久化