Весна против Jboss - PullRequest
       35

Весна против Jboss

13 голосов
/ 09 марта 2009

Каковы преимущества и недостатки Spring против Jboss для корпоративного веб-приложения.

Ответы [ 6 ]

48 голосов
/ 28 октября 2010

Это хороший вопрос. Некоторые неправильно заявили здесь, что это сравнение яблок с апельсинами, то есть Jboss - это контейнер, а Spring - просто фреймворк, такой как Struts. Однако причина, по которой это немного сбивает с толку, заключается в том, что и JBoss, и Spring значительно расширили свое первоначальное простое происхождение и, таким образом, приближаются друг к другу. Одним из простых способов понять JBoss является то, что имя было оригинальным «EJBoss», и оно было задумано как сервер приложений J2EE с открытым исходным кодом, поэтому оно имело преимущество перед tomcat по сравнению с службой EJB-контейнером и, следовательно, могло конкурировать с WebSphere. и другие проприетарные серверы приложений.

А Spring был IoC-фреймворком (теперь называется «Внедрение зависимостей»), по сути, фабрика для объектов, чтобы вы могли следовать более «слабо связанному» дизайну.

Однако с их популярностью оба продукта расширились. Например, у JBoss теперь есть собственный контейнер IoC: JBoss IoC

JBoss предоставляет собственный облегченный контейнер IoC под названием: JBoss Microcontainer. JBoss Microcontainer - это легкий, инверсионный Контроллер впрыска Control / Dependency, похожий по концепции на Spring, Контейнер Пико и сплетение.

И хотя Spring может работать отлично, сосуществуя (в основном) счастливо с JBoss, ему не нужен полноценный EJB-контейнер, он может легко работать в tomcat. Вся цель разработки Spring была основана на идее облегченного дизайна, использовании POJO и отсутствии требования к тяжелому контейнеру, что очень противоречило EJB и, следовательно, казалось бы, противоречило JBoss.

Род Джонсон указал, что нет никаких причин, по которым вы не можете запускать Spring в JBoss:

Spring предназначен для работы на любом сервере приложений (или вне сервер приложений); использование Spring не означает игнорирование того, что Сервер может предложить. Это просто обеспечивает больший выбор во многих случаи.

Итак, вам нужно решить, какие части двух систем вы хотите использовать, и какие стандарты Java вы хотите придерживаться. Согласно этой статье, на JBoss и Spring , которая описывает, насколько хорошо они соответствуют стандартам, кажется, что в зависимости от выбранной вами технологии вы выбираете сторону, так как это кажется довольно спорным битва.

Что будет дальше, так это не разрядка, как JBoss и Spring Source. сражаться за все от XML до интеграции с инструментами, чтобы в конечном итоге виртуализация сама по себе .... это здоровая конкуренция,

[надрез]

Только время покажет, но я думаю, что эта битва только делает вещи лучше для разработчиков, больше вариантов, чем .Net, и больше инновации вокруг Java, это будет тяжелым испытанием для JBoss, но один что они могут справиться, если исполнение безупречно, в противном случае, ищите Spring Source вбивает клин между ощутимыми и реальными преимуществами JEE 6 ... раньше, чем позже, переносимость приложений будет должны быть продемонстрированы, чтобы противостоять запатентованным моделям, и этого не произошло,

Чтобы получить более свежую информацию о соблюдении различных стандартов Java, ознакомьтесь с запросом о предоставлении отзывов о Spring 5 . Вы можете получить представление об ограничениях, с которыми сталкиваются дизайнеры Spring, при этом подчеркнув тот факт, что для рынка Spring важно убедиться, что Spring поддерживает различные серверы EE:

Мы намерены также мягко обновить базовый уровень EE. Теперь это немного сложно, так как у нас здесь есть индивидуальные требования - и мы должны учитывать уровни принятия предприятия на производстве окружающая среда

Мы определенно повысим до Servlet 3.0+ (с нашего нынешнего Servlet 2.5 совместимость во время выполнения), но не выше, так как мы хотели бы Spring 5 приложения для запуска на базовых серверах EE 6 по-прежнему. См мой предыдущий кипаОГ пост для обсуждения, почему это неизбежно, учитывая рыночная ситуация с Java EE 7 и множеством серверов, по-прежнему на основе Servlet 3.0 API. [snip] Это просто Жаль, что мы должны продолжать поддерживать API JMS 1.1 эпохи 2002 года… нравится повышать до JPA 2.1+ и Bean Validation 1.1+, но наши руки кажутся быть связанными: TomEE 1.7 и JBoss EAP 6.4 имеют жесткий JPA 2.0 и Bean В них есть API для валидации 1.0, а в WebLogic 12.1.3 есть JPA 2.1, но нет API Bean Validation 1.1 (несмотря на их связь).

12 голосов
/ 09 марта 2009

Как уже было сказано, но позвольте мне еще раз подтвердить это. JBoss - сервер приложений. Некоторые серверы приложений Java включают

  • Вебсфера
  • Glassfish
  • JBoss

Весна - это каркас. Довольно большой фреймворк, который предлагает немало, но для меня одной из главных особенностей является MVC. MVC - это шаблон проектирования, в котором вы отделяете вашу модель от представления от вашего Contoller. Модель представляет собой представление данных. Это может быть подкреплено такими вещами, как база данных или файлы XML. Вид - это то, что используется для просмотра модели. Это может быть веб-интерфейс или приложение для Windows. Пользователь будет взаимодействовать с представлением. Пользователь выразит свое желание обновить модель. Вот где приходит контроллер. Мы используем контроллер, чтобы сообщить модели для обновления. И поскольку представление основано на модели, представление также обновляется. Это слишком упрощенно, но в двух словах. Другой MVC-фреймворк, на который вы можете посмотреть, это Struts.

Как я уже говорил ранее, Spring предлагает и другие функции, такие как

  • Каркас безопасности
  • Инверсия контроля
  • Внедрение зависимостей
5 голосов
/ 09 марта 2009

Вот мое мнение:

Spring представляет все хорошее в Java EE, а JBoss - все плохое.

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

3 голосов
/ 09 марта 2009

JBoss - это контейнер, пружина - это то, что проходит внутри контейнера. Вы сравниваете яблоки с апельсинами.

0 голосов
/ 12 февраля 2016

Приложения работают на JBoss как монолитные (один процесс JVM делает все), где вам потребуется вертикальный / горизонтальный кластер для масштабирования, где использование пружины может быть скорректировано для реализации архитектуры микро сервисов.

0 голосов
/ 19 марта 2014

Поскольку java6 и CDI (посмотрите на @inject), ваше мнение неверно, весна уже не единственная. Было верно 15 лет назад с EJB2 (и даже EJB3) но сегодня CDI-код управляется в websphere, weblogic, jboss, glassfish, ... на любом сервере приложений, который вы хотите.

...