Каковы преимущества/недостатки шва над Spring?

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

Есть ли что-нибудь, что можно сделать в Seam, которое невозможно сделать в Spring? Что-нибудь в Spring, которое невозможно сделать в Seam?

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

Ответ 1

Почему Spring?

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

Почему Шов?

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Что общего?

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

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

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

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

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

Заключение

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

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

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