假设我有三个状态 A、B、C 并且如果用户触发一些 api 调用,就会发生状态机初始化。如果要从状态 A -> B -> C 发生转换,那么在状态 B 想要向用户发送响应,然后用户将通过附加一些有效负载来调用相同的 api,然后它必须进入状态 C。
是否有可能使用弹簧状态机来实现这个业务用例。如果可能的话,我们怎么能做到这一点。如果弹簧状态机不可能,我可以使用哪个框架来实现这个用例
假设我有三个状态 A、B、C 并且如果用户触发一些 api 调用,就会发生状态机初始化。如果要从状态 A -> B -> C 发生转换,那么在状态 B 想要向用户发送响应,然后用户将通过附加一些有效负载来调用相同的 api,然后它必须进入状态 C。
是否有可能使用弹簧状态机来实现这个业务用例。如果可能的话,我们怎么能做到这一点。如果弹簧状态机不可能,我可以使用哪个框架来实现这个用例
是的,你可以实现这个用例,
但是您需要将信息保存在某个地方,以便您知道要提供哪些信息以及处于哪种状态,您应该重置状态机。
状态机中有高级控件,您可以在其中将状态机重置为特定状态。我假设您正在使用状态机工厂来获取状态机。
stateMachine.getStateMachineAccessor().doWithAllRegions(access -> access
.resetStateMachine(new DefaultStateMachineContext<>(state, null, null,null)));
使用上面的代码,您将获得一个已经处于所需状态的状态机,然后您可以传递带有所需信息的上下文存储。