Spring 3, Java EE 6 - PullRequest
       11

Spring 3, Java EE 6

2 голосов
/ 05 февраля 2011

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

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

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

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

1 Ответ

6 голосов
/ 05 февраля 2011

Со временем JavaEE действительно догнал с точки зрения возможностей.

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

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

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

Кстати, в то же время портфолио Spring было заполнено побочными проектами, которые добавляют множество специфических функций / наборов функций.Обратите внимание, что многие из них можно использовать и с JavaEE, но они идеально подходят для пружин:

  • пружинная безопасность - декларативная безопасность
  • spring roo - инструмент для быстрой начальной загрузкипроекты
  • Spring Web Flow - платформа MVC для работы с любителями волшебства.
  • Данные Spring - все еще новые, нацеленные на объединение доступа к магазинам NoSQL
  • Spring Mobile - переносspring для мобильных платформ
  • spring social - набор инструментов для взаимодействия с социальными сетями

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

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

...