在实际的企业应用中,基本不可能只有一个状态机流程在跑,比如订单,肯定是很多个订单在运行,每个订单都有自己的订单状态机流程。我们就需要在每次使用时创建一个新的状态机。
创建多个状态机
通过 RefundReasonMachineBuilder
创建多个状态机。
@Slf4j
@Component
public class RefundReasonMachineBuilder {
public StateMachine<RefundReasonStatus, RefundReasonEvents> build(BeanFactory beanFactory) throws Exception {
StateMachineBuilder.Builder<RefundReasonStatus, RefundReasonEvents> builder = StateMachineBuilder.builder();
log.info("构造退款原因修改状态机");
builder.configureConfiguration()
.withConfiguration()
.machineId("refundReason