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

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

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

18
задан bakkal 11 August 2010 в 16:45
поделиться

3 ответа

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

2
ответ дан 30 November 2019 в 09:25
поделиться

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

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

7
ответ дан 30 November 2019 в 09:25
поделиться

Что мне лично больше всего нравится в webflow, так это 2 вещи:

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

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

3
ответ дан 30 November 2019 в 09:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: