Весна 3, Java EE 6


Я изучаю Java EE 6. Я видел, как много прогресса было достигнуто в этом выпуске спецификации umbrella. EJBs 3.1 намного проще и легче, чем предыдущие версии, а CDI-это потрясающе.

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

Я знаю, что выбор из обоих зависит от многих факторов, но если мы фокусируемся только на особенностях, скажем, последних тенденциях и т. д. Какой из них имеет передний край? Может ли Spring 3 предложить некоторые активы, которые стек Java EE 6 не может?

Кроме того, как насчет каркаса шва? Из того, что я читал, это похоже на Java EE 6, но с некоторыми дополнениями?

1 2

1 ответ:

Со временем JavaEE действительно догнали в плане особенностей.

Но один фактор, на который я натыкался много раз, является основной причиной, по которой я предпочитаю spring в течение длительного времени - серверы JavaEE и реализации являются глючными и недружественными для разработчиков. Это может звучать как тирада, но даже лучший из JavaEE 6-CDI (Weld impl) имеет зашифрованные сообщения об исключениях и создает трудности для разработчиков (смотрите здесь). Не говоря уже о серверах приложений - очень некрасиво ошибок (я удалось найти около 5 багов за 3 часа работы с JBoss 5)

Еще одна вещь, которая делает spring более привлекательным для меня, - это то, что функции могут быть добавлены в небольшие временные рамки. Как я отметил в своем комментарии, Единая абстракция кэша и обработка разговоров будут добавлены в следующем выпуске spring, который будет через пару месяцев после предыдущей версии. В JavaEE вам придется ждать много времени (по крайней мере, для стандартного решения)

Но это не так уж и Черно с Яваи. Многие из них проблемы имеют обходные пути или исправляются своевременно. И в конечном счете, это вопрос личных предпочтений.

Кстати, портфолио spring тем временем пополнилось сайд-проектами, которые добавляют множество специфических функций/наборов функций. Обратите внимание, что многие из них также могут использоваться с JavaEE, но они идеально подходят для spring:
  • spring security-декларативная безопасность
  • spring roo-инструмент для быстрой загрузки проекты
  • spring web flow-фреймворк на вершине MVC для обработки Wizard-likes journeyes
  • spring data-все еще новое, нацеленное на унификацию доступа к хранилищам NoSQL
  • spring mobile-перенос весны на мобильные платформы
  • spring social-набор инструментов для взаимодействия с социальными сетями

Это просто дополнительные услуги, и у JavaEE также есть дополнительные услуги, но они более общего назначения (насколько я вижу на картинке), кроме шва, который специально нацелен при обеспечении того, чего не хватает CDI.

Одно очень важное замечание в заключение. Сравнивая весну в JavaEE-это неправильно. Я бы предпочел сравнить Spring с CDI+EJB+Application server. Остальную часть JavaEE можно использовать вместе с весной, и это часто бывает. JAX-WS, JAXB, даже JSF прекрасно сочетаются с пружиной и часто используются.