Когда имеет смысл использовать Spring WebFlow поверх Spring MVC? - PullRequest
18 голосов
/ 27 июля 2010

Spring MVC стал очень популярной средой для создания корпоративных веб-приложений. Любое сложное веб-приложение имеет определенные потоки, которые должны быть закодированы, в том числе некоторые условные потоки (то есть, показать заказ, обработанный, если информация о кредитной карте была правильной, или ошибки проверки, если что-то было введено неправильно).

Когда имеет смысл использовать Spring WebFlow поверх Spring MVC? Каким должен быть процесс принятия решений относительно использования Spring WebFlow?

Ответы [ 4 ]

7 голосов
/ 27 июля 2010

Если у вас есть веб-приложение, в котором есть какой-то процесс приложения.Например, если у вас есть какой-то процесс регистрации, одна кнопка может перейти на одну страницу, а другая - на другую.Spring Webflow может очень хорошо обрабатывать переходы к различным наборам процессов.

По сути, если какая-то часть вашего приложения связана и страницы в процессе выполнения зависят друг от друга, SWF хорошо использовать.

3 голосов
/ 11 августа 2010

Что мне больше всего нравится в веб-потоке, так это две вещи:

  1. Возможность наследовать потоки и состояния просмотра. Это очень удобно, когда у вас есть общие логические аспекты, которыми вы хотите поделиться между различными частями вашего приложения. Например, у вас есть логика CRUD, которую вы хотите абстрагировать в отдельном потоке, а затем позволить дочерним потокам наследовать эту логику. Каждый поток может иметь вход и выход, поэтому ваша логика может быть очень тонкой.
  2. Мощные рамки тестирования. В модульных тестах можно охватить практически все аспекты вашей логики потока. Вы можете эмулировать многие программные вещи, такие как запуск действий, переходы из одного представления в другое, обработка постоянства потока и т. Д.

Что мне не нравится, так это несогласованность и плохая обратная совместимость новых версий. Например, последний веб-поток 2.1 не совместим с JSF 1.x jira . Есть также множество проблем с интеграцией с Spring Security. Например, в безопасности весной 3.x они просто изменили некоторые имена пакетов В общем, как упоминал Саси, веб-поток почти заставит вас разделить логику между различными веб-потоками, и я думаю, что это хорошо.

2 голосов
/ 28 июля 2010

Одна из проблем, которую эффективно решает веб-поток, заключается в том, что он четко отделяет (или, по крайней мере, делает его очень сложным) бизнес-логику от логики управления.
Согласитесь с @John в отношении вариантов использования, но я хотел бы отметить, что, как только вы начнете интенсивно использовать webflow, вы обнаружите, что пишете много xml-файлов (поскольку в web-потоке вы указываете все потоки в xml-файлах). Лично для меня это почти нарушает условия сделки.

1 голос
/ 29 декабря 2015

Я использовал MVC и SWF. Лично я предпочитаю SWF, а не MVC из-за следующих двух веских причин:

  1. Spring MVC не имеет встроенного механизма управления сеансами на нескольких вкладках в одном браузере.
  2. Обрабатывать возвраты в браузере проще в SWF, чем в MVC.
...