【问题标题】:Dynamically create flows in Spring Web Flow在 Spring Web Flow 中动态创建流
【发布时间】:2014-09-26 10:59:02
【问题描述】:
我们有一个巨大的企业应用程序,用户在其中导航应用程序注册、数据输入,最后根据数据处理获得一些结果。目前导航逻辑在java类中处理;根据输入的数据、用户操作等,在每一步都决定要导航到的下一页。
我们决定实现spring web flow来实现导航。但是,我们不确定我们是否可以事先涵盖所有可能的场景并创建一个考虑所有场景的流程。
因此,我们正在寻找一种可以在运行时根据应用程序中的不同条件动态创建流的方法。我们如何在 SWF 中实现这一点?任何帮助将不胜感激。
【问题讨论】:
标签:
spring
web-applications
navigation
spring-webflow
spring-webflow-2
【解决方案1】:
在幕后,Spring WebFlow 使用流注册表 (FlowDefinitionRegistryImpl) 来处理 url 到内部资源的映射。在内部,流注册表(最终)是哈希映射的包装器。
我认为在运行时定义的流超出了 Spring-weblow 开箱即用的范围。
但是,在给定企业资源的情况下,您可以扩展 FlowDefinitionRegistryImpl 或使用自定义类实现 FlowDefinitionRegistry,该类的行为如您所愿,并允许您“即时”更改流程。您需要注意性能和同步,并定义刷新底层 Map 的机制。