Spring Statemachine-隐式状态转换

时间:2018-10-26 09:04:50

标签: spring state-machine spring-statemachine

是否可以构造一个状态机,其中仅下一个状态本身会触发事件以调用下一个状态转换?像隐式过渡一样。我不想在外部定义它们,而是想创建类似层叠的东西。

1 个答案:

答案 0 :(得分:0)

如果我正确理解这一点,则希望对状态转换(级联转换)具有类似“ domino”的效果,以便当前状态触发到下一个状态的转换,而该状态又触发到下一个状态的转换,依此类推)。

与SM动作直接相关。 每个SM动作都有权访问StateContext<State, Event>,您可以从中检索状态机实例并触发下一个事件:

//Domino Effect
void actionForS1(StateContext<State, Event> context) {
  //do actions
  Message transitionToS2 = MessageBuilder.withPayload(...).build();
  context.getStateMachine().sendEvent(transitionToS2);
}

void actionForS2(StateContext<State, Event> context) {
  //do actions
  Message transitionToS3 = MessageBuilder.withPayload(...).build();
  context.getStateMachine().sendEvent(transitionToS3);
}