| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Что выбрать - Spring или JEE |
| Автор: oson 22.9.2012, 23:44 |
| Разрабатывается система с RESTfull интерфейсом. REST имплементируется на Jersey. Надо определиться, на чем собственно писать service layer. Что лучше использовать в самом engine - JEE 6 или Spring 3. Других вариантов вроде нет особенно. Ясно, что при определенных входных требованиях есть преимущества у JEE 6, и у Spring 3. Поделитесь плиз, при каких этих самых требованиях лучше использовать JEE 6 и при каких Spring 3? |
| Автор: kosmonaFFFt 23.9.2012, 12:33 |
| Как человек, начинавший со спринга и потом пршедший в тихий ужас от JEE, рекомендую спринг... |
| Автор: AntonSaburov 23.9.2012, 15:43 |
| У спринга есть большое преимущество в плане настройки конфигурации. Если не требуется распределенное приложение на нескольких серверах, то наверно на нем можно остановиться. Может вы просто не умеете его готовить |
| Автор: kosmonaFFFt 23.9.2012, 16:35 |
| Может и не умею... ) Но у нас даже заказчику надоел JEE с глассфишем, и они хотят перепиливания проекта на tomcat и spring... |
| Автор: COVD 23.9.2012, 17:33 | ||
Когда собственный хостинг, то появляется вполне естественное и легко реализуемое (относительная дешевизна железа) желание добавлять сервера (как альтернатива оптимизации кода, алгоритмов). Серверное приложение выгодно отличается от клиентского тем, что его можно сделать распределенным. Серверные приложения в идеале должны быть распределенными. |
| Автор: AlexeyVorotnikov 24.9.2012, 08:52 |
| Spring и JEE взаимно ортогональны. Ничто не мешает использовать их одновременно. |
| Автор: oson 24.9.2012, 15:19 | ||
Зачем же они нужны сразу оба? Особенно если вопрос касается именно service layer. Тут или то или другое. Я прав? То есть я так понимаю, что если планируется делать серверную часть на нескольких серверах, то Spring никак не подходит. То есть это ограничение, которое точно определяет, что надо использовать JEE, но никак не Spring? |
| Автор: AlexeyVorotnikov 24.9.2012, 16:01 | ||
Берём и читаем главу Enterprise JavaBeans (EJB) integration из Spring Reference Documentation (глава 20 в версии 3.0, 21 в версии 3.1):
|
| Автор: Vasay 24.9.2012, 17:28 | ||
| JEE набор из довольно большого числа спецификаций на различные случаи жизни. Изначально это был кошмар мало пригодный для использования, что породило некоторое число альтернативных более легковесных и простых в применении решений, в том числе и Spring. Постепенно JEE перерабатывали и делали более дружелюбным, и местами он стал весьма интересен.
Если я правильно понял AntonSaburov-а, он, говоря про распределенные приложения, имел ввиду EJB. Но ничто не мешает Вам используя Spring в качестве основы для основного приложения выносить часть логики в EJB на другие сервера. |
| Автор: oson 3.10.2012, 22:19 |
| Спасибо. Еще хотел уточнить, правильно ли я понимаю в принципе отличие JEE и Spring. Spring имеет свой собственный контейнер и не нуждается в Application server. В свою очередь JEE - это просто набор стандартов, а конкретная имплементация этого набора - это конкретный application server. То есть JEE не может существовать без апликейшн сервера. Реализация JEE может существовать только в виде конкретного аппликейшн сервера. То есть вне аппликейшн сервера говорить про JEE не имеет смысла, а про Spring - вполне имеет смысл. Правильно? И второй вывод. Так как имплементация стандартов может по факту отличаться от одного сервера к другому, то разработку лучше вести для конкретного сервера, например Glassfish (родной сервер Oracle - может стандарты имплементированы максимально правильно). Правильно? |
| Автор: Vasay 4.10.2012, 01:00 | ||||||||
Он нуждается в контейнере сервлетов (TomCat, Jetty....) Именно так.
По-сути - апликэйшен сервер это контейнер сервлетов (часто тот же TomCat ) на который навешены библиотеки/приложения реализующие тот или иной функционал JEE. Т.е. отсюда и название application server (сервер приложений) - т.е. это сервер с приложениями реализующими спецификации JEE и функционал которых может использовать Ваше приложение.
Ответ на этот вопрос вытекает из предыдущего - если Вам нужна лишь часть функционала JEE, то можно ограничиться лишь подключением определенных библиотек к проекту реализующих этот функционал (или запуском параллельно определенных приложений на контейнере сервлетов расширяющих его функционал)
Несовсем. Посути - и то и то набор библиотек. Только в первом случае обычно он поставляется с Апликэйшен сервером, а во втором отдельным набором библиотек, который Вы подключаете к своему проекту. Однако есть и такое: http://www.springsource.org/dmserver Есть и такое: http://openejb.apache.org/ |
| Автор: oson 4.10.2012, 11:03 |
| Спасибо за подробный ответ. |
| Автор: Atum 20.3.2013, 00:04 | ||
интересно чем так плох jee с ejb 3.1 servlet 3.1 против spring 3.1 по мне так jee это в 10 раз меньше кода . |