1

我不确定这是问这个问题的正确地方,但我在 spring-statemachine 项目(http://projects.spring.io/spring-statemachine/)中看不到论坛链接来向开发人员提问,我希望这是正确的方法。

有段时间写了一篇博客,

极度 Axajified Web 应用程序

关于极其异步的 Web 应用程序,使用 Spring Webflow 和这些项目以及 Spring Webflow 的限制。

在我提出的解决方案中,我广泛使用了状态机原理。在我写这篇博客的时候,还没有我可以使用的开箱即用的状态机,所以我实现了我自己的版本。

现在令我惊讶的是,我刚刚看到了 Spring Statemachine 项目,并且我正在考虑将我的示例应用程序转换为使用 Spring Statemachine 框架。

在真正开始对该主题进行投资之前,我有两个问题要问。我查看了 Spring Statemachine 的样本,似乎状态机的配置是通过 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 是否支持这个概念。

您可以在以下链接中找到有关“状态爆炸”和“嵌套状态机”的更多详细信息。

状态爆炸(见上文“#stateexplosion”)

嵌套状态机(见上文“#nested_sm”)

我希望这是提出这些问题的正确地方。

谢谢你的答案

4

1 回答 1

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
于 2015-10-10T15:22:51.843 回答