Spring-Statemachine配置

时间:2015-09-17 09:05:38

标签: state-machine spring-statemachine

我不确定这是提出这个问题的正确位置,但我在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”)

我希望这是提出这些问题的正确位置。

答案的答案

1 个答案:

答案 0 :(得分:2)

对不起,迟到的答案,我刚刚注意到这个标记的问题。

  1. 我们还没有任何功能来定义基于注释的配置模型(javaconfig)之外的机器配置。 Xml配置位于我们的路线图中,您可以在故障单https://github.com/spring-projects/spring-statemachine/issues/78中跟踪其状态。
  2. 对于您的第二个问题,是的,我们支持嵌套状态甚至正交区域。 Showcase示例显示了相对复杂的方案,如何使用嵌套状态和转换http://docs.spring.io/spring-statemachine/docs/1.0.0.RC1/reference/htmlsingle/#statemachine-examples-showcase