如何更改状态机中的目标状态

时间:2016-09-28 09:00:53

标签: spring-statemachine

首先,我不太确定我的情况是否适合使用弹簧状态机。

这是我的理由:

我有一个很大的可变对象和一组逻辑单元,它将以一定的顺序操纵这个可变对象。

对于正常流程:A.exec - > B.exec - > C.exec - >完成

对于异常从A:A - >抛出的错误流程错误 - >完成(B和C被绕过)

对于异常从B抛出的错误流:A - > B - >另一个流程

我猜A,B,C可以建模为状态,而动作可以用来在从A转移到B时执行真正的商业逻辑。

如何从A中捕获可能抛出的异常并将目标更改为另一个状态而不是B?

由于

莱昂

1 个答案:

答案 0 :(得分:1)

我使用junctionchoice并为传出转换定义防护。 gh240中讨论的内容。然后你可以捕捉你的异常,即存储处于扩展状态的东西,然后从你的警卫那里你可以自由地评估不同的条件。

选择几乎是if/elseif/else结构来定义哪个分支机器将跟随转换。

还有deploy sample使用相同的概念建模。