我不确定这是提出这个问题的正确位置,但我在spring-statemachine项目(http://projects.spring.io/spring-statemachine/)中找不到论坛链接向开发人员提问,我希望这是正确的这样做的方法。
有一段时间我写了一篇博客,
Extremely Axajified Web Application
关于极其异步的Web应用程序,使用Spring Webflow以及Spring Webflow对这些项目的限制。
在我提出的解决方案中,我广泛使用了状态机原理。在我撰写此博客的时间范围内,我没有开箱即用的State Machine,所以我实现了自己的版本。
令我惊讶的是,我刚看到Spring Statemachine项目,并且我正在考虑将我的示例应用程序转换为使用Spring Statemachine框架。
在真正开始投入这个主题之前,我有两个问题要问。我检查了Spring Statemachine的样本,看来State Machine的配置是通过Java Code完成的。
这是唯一可能的方法,在我的示例应用程序中,我正在阅读UML模型(XMI)并通过Eclipse M2T创建一个Spring配置文件来启动应用程序。
我发现最终用户通过Java代码配置复杂状态机是为了实际应用。为此,我使用图形用户界面创建状态机的UML模型并将其转换为Spring应用程序上下文,因此最终用户将更容易理解。
你可以在这里看到。
UML模型(遗憾的是Stack Overflow不允许我发布额外的链接,所以请在上一个链接的末尾使用“#sm_model”)
Eclipse M2T UML模型转换(见上文“#m2t”)
那么可以提供一个XML文件并用它配置Spring Statemachine吗?我可以自然地通过M2T创建Java类,但我觉得最终结果对于复杂项目的最终用户几乎是不可读的。
第二个问题我想问一下,Spring Statemachine能否支持“嵌套状态机”,我在项目网站上发现了可能性,但在现有的示例项目中我找不到具体的实现。
在实际的Web应用程序中使用状态机的最大障碍是“状态爆炸”以及处理它的最佳方式,是“嵌套状态机”。
Spring Statemachine是否支持这一概念。
您可以在以下链接中找到有关“State Explosion”和“Nested StateMachines”的含义的更多详细信息。
国家爆炸(见上文“#stateexplosion”)
嵌套状态机(见上文“#nested_sm”)
我希望这是提出这些问题的正确位置。
答案的答案
答案 0 :(得分:2)
对不起,迟到的答案,我刚刚注意到这个标记的问题。
Showcase
示例显示了相对复杂的方案,如何使用嵌套状态和转换http://docs.spring.io/spring-statemachine/docs/1.0.0.RC1/reference/htmlsingle/#statemachine-examples-showcase。