美好的一天,
我刚刚开始学习弹簧状态机。
我有以下问题 我想知道如何配置使用嵌套状态机的状态机。
如何通过状态机生成器以编程方式完成此操作?
如何通过纸莎草UML完成此操作?
我的第二个问题是如何触发事件,即到达具有嵌套状态机的状态时。事件如何成为嵌套状态机中的触发器?
我的第三个问题是如何通过触发从父状态(即引用嵌套状态机的状态)移动的事件来退出嵌套状态机。 到父状态机中的另一个状态。
我非常希望能参考一些示例。
答案 0 :(得分:0)
研究完Javadoc并阅读了一些链接
https://github.com/spring-projects/spring-statemachine/issues/121
我知道了。
以编程方式
https://www.baeldung.com/spring-state-machine
点击该链接以了解操作方法。
....
enter code here
*builder.configureStates()
.withStates()
.initial("contactList2")
.state("newContactSM", newContactSM())
.end("end1");*
....
状态“ newContactSM”引用嵌套状态机。嵌套状态机 是定义
....
*
public StateMachine<String, String> newContactSM() throws Exception
{
logger.info(" ------ newContactSM() -------- ");
// checkCurrentFlow();
Builder<String, String> builder = StateMachineBuilder.builder();
builder.configureConfiguration().withConfiguration().machineId("newContactBTF");
logger.info(" configure states ..");
builder.configureStates()
.withStates()
.initial("newContact")
.end("end2")
.states(new HashSet<String>(Arrays.asList("otherContact"))); // (Arrays.asList("S1", "S2", "S3")));
logger.info(" states configured ! ");
........ //
}
enter code here
....
通过UML实现 只要确保您在状态“ newContactSM”中引用嵌套状态机即可。
设置完成后。您可以正常触发事件。弹簧状态机将处理其余部分。