【发布时间】:2019-03-31 00:08:07
【问题描述】:
是否有可能构造一个只有下一个状态本身触发事件来调用下一个状态转换的状态机?就像隐式转换一样。我不想在外部全部定义它们,我想创建类似级联的东西。
【问题讨论】:
标签: spring state-machine spring-statemachine
是否有可能构造一个只有下一个状态本身触发事件来调用下一个状态转换的状态机?就像隐式转换一样。我不想在外部全部定义它们,我想创建类似级联的东西。
【问题讨论】:
标签: spring state-machine spring-statemachine
如果我理解正确,您希望对状态转换(级联转换)产生类似“多米诺骨牌”的效果,以便当前状态触发到下一个状态的转换,进而触发到下一个状态的转换,依此类推)。
这与 SM 操作直接相关。
每个 SM Action 都可以访问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);
}
【讨论】: