Каковы преимущества / недостатки Seam по сравнению с Spring? - PullRequest
11 голосов
/ 06 июня 2009

Каковы преимущества / недостатки Seam по сравнению с Spring? Зачем мне использовать Seam вместо Spring?

Есть ли что-нибудь, что можно сделать в Seam, чего нельзя сделать весной? Что-нибудь весной, что нельзя сделать в Seam?

А как насчет архитектуры с сохранением состояния / без состояния? Я пользователь Spring, поэтому я предвзят, естественно.

Ответы [ 5 ]

22 голосов
/ 06 июня 2009

Почему весна?

  • Код чистящего средства
  • Оптимизированная конфигурация приложения
  • Хорошая интеграция с популярными продуктами с открытым исходным кодом
  • Поддержка AOP первого класса
  • Корпоративная безопасность: Acegi
  • Очень гибкий MVC
  • Абстрактный доступ к данным (JDBC в порядке)
  • Enterprise Java без EJB
  • Тестирование легко

Почему Шов?

  • Объединение стандартов Java EE 5 (EJB 3.0, JPA, JSF, Аннотация) без проблем
  • С учетом состояния
  • биекция
  • Интегрированный Ajax (ICEfaces и Ajax4JSF)
  • Интеграция бизнес-процессов (jBPM)
  • Интеграция бизнес-правил (слюни)
  • Управление рабочим пространством
  • Доставить полный стек (из JBoss & RedHat)
  • Улучшение текста шва и EL
  • Вероятно, будет стандартом (JSR-299: Web Beans)

Из Framework Deathmatch: весна против шва. Томас Вирадикусума (Весна). Джошуа Джексон (Шов). Java User Group Индонезия. ЯМУ 07.03. 17 марта 2007 г. презентация в Power Point здесь

5 голосов
/ 16 июня 2011

Хотя шов имеет много преимуществ по сравнению с весной, есть волшебное слово, на которое действительно стоит обратить внимание, и это ПРОИЗВОДИТЕЛЬНОСТЬ !!! если вы не беспокоитесь о проблемах производительности, я бы пошел со швом. С другой стороны, если вы хотите, чтобы ваше приложение было максимально быстрым, а ваше оборудование ограничено, я бы использовал spring. Я не говорю, что вы не можете разрабатывать быстрые приложения со швом, но для этого вам действительно нужно знать, что вы делаете. Я использовал их обоих (я не гуру ни в одном из них), и я обнаружил, что, хотя весне нужно больше усилий, чтобы построить то, что вы хотите, в конце результат получается более гибким и работает лучше. Я не думаю, что есть что-то, что может быть сделано в одной структуре, что это не может быть сделано в другой, говоря, что, помните, что я не являюсь экспертом ни в одном из них.

3 голосов
/ 07 июня 2009

Шов обеспечит вам приятную, ах, бесшовную интеграцию между компонентами, составляющими стек шва. Все очень хорошо, пока вы держитесь внутри этого стека, и внутри модели шва, и в поисках вещей. Однако все начинает выглядеть немного менее убедительно, как только вы начинаете делать что-то необычное.

Если это не слишком распространенное обобщение, то в этом отношении Шов очень "микробезопасен". Это не плохо, это просто стилистика. Spring более открыт и требует больше усилий, но в конечном итоге он более гибкий и гораздо более открытый.

2 голосов
/ 28 марта 2010

Давайте сравним два.

Что общего?

Оба с открытым исходным кодом, следуют архитектуре MVC и имеют фронт-контроллер на основе сервлетов.

Преимущества Spring MVC

  • Расширение Struts.
  • Вид может быть разработан с использованием JSP и HTML. Вы также можете подключить другие, как PHP или скорость.
  • Имеет большое количество предопределенных контроллеров.
  • Встроенный из коробки с рамой Spring.

Преимущества шва

  • Расширение JSF
  • Представление может быть разработано с использованием библиотеки компонентов JSF. Существует большое количество поставщиков на выбор.
  • Интеграция объектов JPA с веб-слоем
  • Проверка на основе аннотации
  • Интегрируется с EJB 3.0
  • Встроенная поддержка jBPM, которая предоставляет определения потоков процессов.
  • Интегрируется с Drools, где вы можете определять бизнес-правила веб-слоя.
  • Хорошая поддержка сообщества.

Заключение

Поскольку Seam построен на JSF, у него есть большое количество библиотек компонентов пользовательского интерфейса. Он лучше использует стек Java EE. В него встроено множество интересных модулей.

Spring MVC построен на основе Struts и Spring, поэтому он будет использовать стек фреймворков Spring гораздо лучше, чем другие. Но представление построено с использованием JSP, поэтому мы должны полагаться на поставщиков библиотеки тегов JSP для создания многофункциональных компонентов.

Платформа Seam будет лучшим выбором, поскольку среда Spring в любом случае достаточно расширяема, чтобы использовать ее в Seam.

2 голосов
/ 07 сентября 2009

Вы можете использовать Spring и Seam вместе - Spring для внутренних компонентов, Seam для улучшения веб-слоя (JSF / GWT / Wicket) и другие вещи. Seam предлагает множество функций Spring (т. Е. Контейнер IoC, управление транзакциями) - в вашем проекте вы можете решить - какую реализацию использовать. Подробнее об интеграции Seam с Spring - «Seam in Action - бесплатный бонусный раздел»

...