18

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

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

4

4 回答 4

7

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

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

于 2010-07-27T15:19:04.017 回答
3

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

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

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

于 2010-08-11T16:43:41.327 回答
2

One problem that webflow solves efficiently is it cleanly separates (or at least it makes very hard to mix) business logic from your control logic.
Agree with @John on the use cases but I would like to point out that once you start using webflow heavily, you will find yourself writing a lot of xml files (since in webflow you specify all the flows in xml files). This is almost a deal breaker for me personally.

于 2010-07-27T20:59:53.427 回答
1

我使用过 MVC 和 SWF。由于以下两个坚实的原因,我个人更喜欢 SWF 而不是 MVC:

  1. Spring MVC 没有内置机制用于在同一浏览器中跨多个选项卡进行会话控制。
  2. 在 SWF 中处理浏览器返回比在 MVC 中更容易。
于 2015-12-29T09:30:54.513 回答