【问题标题】:When does it make sense to use Spring WebFlow on top of Spring MVC?在 Spring MVC 之上使用 Spring WebFlow 什么时候有意义?
【发布时间】:2011-03-21 16:12:54
【问题描述】:

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

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

【问题讨论】:

    标签: java spring web-applications spring-mvc spring-webflow


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        Webflow 有效解决的一个问题是,它将业务逻辑与您的控制逻辑清晰地分开(或至少很难混合)。
        在用例上同意@John,但我想指出,一旦开始大量使用 webflow,您会发现自己编写了很多 xml 文件(因为在 webflow 中,您在 xml 文件中指定了所有流)。这对我个人来说几乎是一个交易破坏者。

        【讨论】:

        • 我同意 xml 非常繁琐,但替代方案更是如此(用 java 编写自己的流逻辑)。我见过人们在 webflow 可用之前尝试这样做,维护起来简直就是一场噩梦。
        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2011-10-07
          • 1970-01-01
          • 2014-11-10
          • 2011-07-29
          • 2018-11-21
          • 2021-09-05
          • 1970-01-01
          • 2013-05-02
          • 1970-01-01
          相关资源
          最近更新 更多