FAQ
本章回答了 Spring StateMachine 用户最常问的问题。
57. 状态变化
如何自动过渡到下一个状态?
您可以选择三种方法:
-
实施一个动作并向状态机发送适当的事件,以触发进入适当目标状态的转换。
-
在状态中定义一个延迟事件,然后在发送该事件之前先发送另一个延迟事件。这样做可以在更方便的时候处理该事件时触发适当的状态转换。
-
实现无触发器转换,当进入状态并且其动作完成时,自动导致状态转换到下一个状态。
58. 扩展状态
如何在状态机启动时初始化变量?
在状态机中,一个重要的概念是,除非触发器导致状态转换并且可以激发动作,否则实际上不会发生任何事情。然而,当声明这一点时,Spring StateMachine 总是在状态机启动时具有初始过渡。通过这个初始过渡,您可以在 StateContext 中运行一个简单的操作,在此操作中,可以使用扩展的状态变量做它想要做的任何事情。