Подтвердить что ты не робот

Когда имеет смысл использовать Spring WebFlow поверх Spring MVC?

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

То, что мне лично нравится в webflow, - это всего две вещи:

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

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

Ответ 3

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

Ответ 4

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

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