Каковы преимущества/недостатки шва над 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.