Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SpringMVC之上使用SpringWebFlow什么时候有意义?_Java_Spring_Web Applications_Spring Mvc_Spring Webflow - Fatal编程技术网

Java 在SpringMVC之上使用SpringWebFlow什么时候有意义?

Java 在SpringMVC之上使用SpringWebFlow什么时候有意义?,java,spring,web-applications,spring-mvc,spring-webflow,Java,Spring,Web Applications,Spring Mvc,Spring Webflow,SpringMVC已经成为构建企业web应用程序的非常流行的框架。任何复杂的web应用程序都有某些需要编码的流,包括一些条件流(即,如果信用卡信息正确,则显示已处理的订单;如果输入不正确,则显示验证错误) 在SpringMVC之上使用SpringWebFlow什么时候有意义?关于使用SpringWebFlow的决策过程应该是什么?如果您有一个具有某些应用程序过程的web应用程序。例如,如果您有某种注册过程,一个按钮可以转到一个页面,而另一个按钮可以转到另一个页面。SpringWebFlow可以很

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


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

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


基本上,如果应用程序的某些部分在执行过程中被链接,并且页面相互依赖,那么SWF很好地使用。

webflow有效地解决了一个问题,即它将业务逻辑与控制逻辑清晰地分离(或至少很难混合)。

在用例上同意@John的观点,但我想指出,一旦开始大量使用webflow,就会发现自己编写了大量xml文件(因为在webflow中,所有流都是在xml文件中指定的)。对我个人来说,这几乎是一个交易破坏者。

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

  • 继承流和查看状态的能力。当您希望在应用程序的不同部分之间共享一些常见的逻辑方面时,这非常方便。例如,您有CRUD逻辑,希望在单独的流中抽象它,然后允许子流继承该逻辑。每个流都可以有输入和输出,因此您的逻辑可以非常细粒度
  • 强大的测试框架。可以在单元测试中涵盖流逻辑的几乎所有方面。您可以通过编程方式模拟许多事情,例如动作触发、从一个视图到另一个视图的转换、流持久性处理等等
  • 我不喜欢的是新版本的不一致性和较差的向后兼容性。例如,最新的WebFlow2.1与JSF1.x不兼容。与Spring Security集成还存在许多问题。例如,在SpringSecurity3.x中,他们只是更改了一些包名
    总的来说,正如Sasi所提到的,webflow几乎会迫使您在不同的webflow中分离您的逻辑-我认为这很好。

    我使用了MVC和SWF。就我个人而言,我更喜欢SWF而不是MVC,原因有以下两个:

  • SpringMVC没有内置的机制来跨同一浏览器中的多个选项卡进行会话控制
  • 在SWF中处理浏览器回退比在MVC中更容易

  • 我同意xml非常麻烦,但另一种方法更麻烦(用java编写自己的流逻辑)。我看到人们在webflow可用之前就尝试这样做,维护它是一场噩梦。