2014-10-25 5 views
2

Я новичок в JavaEE и Spring Framework. Мне трудно понять, как мы можем писать приложение только с помощью Spring Framework. Я прочитал через Интернет, что намерение Spring Framework заключалось в том, чтобы упростить разработку приложений уровня предприятия в отличие от разработки EJB (главным образом в серии EJB 2.x).Как JavaEE и Spring связаны/не связаны?

С JavaEE у нас есть много технологий, таких как: 1) EJB 2) JCP 3) JTA 4) J и так далее.

При чтении Spring Framework я начал с инъекции зависимостей, Spring AOP, Spring MVC (и других, которые я читаю).

У меня возникли трудности с пониманием того, как только использование Spring DI/AOP/MVC может сделать полномасштабное корпоративное приложение? Я читал с одного из сообщений, например, для управления транзакциями, мы можем использовать собственное управление транзакциями Spring или использовать JTA. Я считаю, что JTA является частью JavaEE, и если мы в конечном итоге используем технологии JavaEE, то как весна облегчает жизнь?

Любые ответы, которые помогут мне понять это, очень ценятся.

+1

См. Также: http://stackoverflow.com/questions/7295096/what-exactly-is-java-ee – lexicore

+1

См. Также: http://stackoverflow.com/questions/1061717/what-exactly-is-spring -for – lexicore

+0

http://stackoverflow.com/questions/627839/spring-vs-jboss – lexicore

ответ

8

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

Например:

  • Spring MVC построен на вершине сервлеты (которые являются частью Java EE) и конкурирует с JAX-RS и JSF
  • Spring ядро ​​(IoC, АОП) конкурирует с CDI и EJBs обработки транзакций
  • пружины просто уровень абстракции поверх существующих транзакционных механизмов (JPA, Hibernate, JDBC или JTA)
  • весна-данные JPA представляет собой уровень абстракции поверх JPA
  • Весна-JDBC является уровень абстракции поверх JDBC

Таким образом, для типичного веб-приложение построен с весной, вы, по крайней мере, использование приходят компоненты Java EE: сервлеты, может быть, JDBC или JPA. Если вам нужна передача сообщений и XA, вы будете использовать JMS и JTA, но Spring предоставит уровень интеграции.Что касается инъекции зависимостей, вам не нужны EJB и CDI, потому что Spring имеет прямую поддержку той же функциональности.

+0

Итак, нам нужно знать JavaEE, так как Spring использует технологии JavaEE. Означает ли это, что Spring не может существовать самостоятельно (если он не использует JavaEE). Чем больше я изучаю JavaEE/Spring, тем более запутанным становится то, что я понял, это реальный путь. – CuriousMind

+0

Вам нужно знать, что вы используете. Java EE и Spring чрезвычайно велики. Я использую их в течение многих лет, и есть много частей, о которых я не знаю, потому что я их не использую. Но да, если вы используете Spring MVC, вам нужно понять, как работает API сервлета. И если вы используете API сервлета, вам нужно понять, как работают HTTP и Java. Это куча слоев, и вы никогда не полностью изолированы от нижележащих слоев. Аналогичным образом, знание JDBC и SQL полезно (я бы сказал, необходимо), если вы используете JPA. –

+0

Спасибо за ваш отзыв, оцените много. Тогда почему обсуждается, что Spring является (или была) заменой Java EE (когда за сценой Spring использует технологии, предлагаемые Java EE?). Как я прочитал некоторые сообщения о том, как переносить Java EE в Spring Framework? Я считаю, что Spring и Java EE предназначены для работы рука об руку, а не как конкуренты, это правильно сделать? – CuriousMind

1

Прежде всего, укажите Enterprise application - AFAIK «Предприятие» в Java EE - это просто маркетинговый термин.

JavaEE - это набор API и набор (большой) стандартов/спецификаций для создания масштабируемых серверных приложений на Java, что позволяет создать нечто большое и сложное - что-то, что можно назвать «предприятием».

Spring - это прикладная структура (некоторые скажут «Структуру»), которая интегрируется с J2EE.

Вы программист, таким образом, вы тот, кто делает

полномасштабный приложение Enterprise

из набора компонентов, предлагаемых Java EE, Spring или этажерки.

+0

Спасибо за ответ. Означает ли это, что нам нужно знать технологии, которые JavaEE может предложить и использовать Spring Framework, интегрировать эти компоненты? – CuriousMind

+0

Если вы серьезно относитесь к разработке на стороне сервера Java, вам нужно знать JavaEE и популярные фреймворки (например, Spring), по крайней мере, на базовом уровне. Ответ JB Nizet - вот что. –

Смежные вопросы