什么时候在Spring MVC之上使用Spring WebFlow是有意义的?

Spring MVC已经成为构建企业Web应用程序的非常流行的框架。任何复杂的 Web 应用程序都有某些需要编码的流,包括一些条件流(即,如果信用卡信息正确,则显示已处理的顺序,或者如果未正确输入某些内容,则显示验证错误)。

什么时候在Spring MVC之上使用Spring WebFlow是有意义的?关于使用Spring WebFlow的决策过程应该是什么?


答案 1

如果您有一个 Web 应用程序,该应用程序具有某些应用程序进程。例如,如果您有某种注册过程,则一个按钮可以转到一个页面,而另一个按钮可以转到另一个页面。Spring Webflow可以很好地处理向不同流程集的过渡。

基本上,如果应用程序的某个部分是链接的,并且页面在执行过程中相互依赖,则最好使用 SWF。


答案 2

我个人在Webflow中最喜欢的是两件事:

  1. 能够继承流和视图状态。当您有一些要在应用程序的不同部分之间共享的常见逻辑方面时,这非常方便。例如,您有一个 CRUD 逻辑,您希望在单独的流中抽象,然后允许子流继承此逻辑。每个流都可以有输入和输出,因此您的逻辑可以非常细粒度。
  2. 强大的测试框架。在单元测试中,可以涵盖流逻辑的几乎所有方面。您可以模拟许多编程操作,例如操作触发、从一个视图到另一个视图的转换、流持久性处理等

我不喜欢的是较新版本的不一致和较差的向后兼容性。例如,最新的 webflow 2.1 与 JSF 1.x jira 不兼容。与Spring Security集成也存在许多问题。例如,在春季安全3.x中,他们只是更改了一些软件包名称,正如Sasi所提到的,webflow几乎会迫使您在不同的webflow中分离您的逻辑 - 我认为这很好。


推荐