Що саме таке Java EE?


162

Я вже кілька років займаюся Java SE і переходжу до Java EE. Однак у мене є проблеми з розумінням деяких аспектів Java EE.

  1. Чи є Java EE лише специфікацією? Що я маю на увазі: Є EJB Java EE?

  2. Чи є різними реалізаціями Java EE EJB / Spring?

Прошу пробачення, але у мене є труднощі зрозуміти, що таке Java EE.

Може хтось пояснить, що таке Java EE? А EJB?



2
Ви повинні вирішити це питання на два питання, хоча одне є дублікатом, а інше, на мою думку, не відповідає у посиланні.
— Хельдар

2
Власне, ви читали вікі з тегом [java-ee] ?
— Paŭlo Ebermann


Відповіді:


187

Чи є Java EE лише специфікацією? Що я маю на увазі: Є EJB Java EE?

Java EE - це справді абстрактна специфікація. Будь-хто відкритий для розробки та забезпечення ефективної реалізації специфікації. У конкретних реалізаціях є так звані сервери додатків, як WildFly , TomEE , GlassFish , Свободи , WebLogic і т.д. Є також контейнери сервлетів , які реалізують тільки JSP / Servlet частина величезного Java EE API, такі як Tomcat , Jetty , тощо.

Ми, розробники Java EE, повинні писати код, використовуючи специфікацію (тобто імпортувати лише javax.* класи в нашому коді замість конкретних класів, таких як org.jboss.wildfly.*, com.sun.glassfish.*і т.д.), і тоді ми зможемо запустити наш код на будь-якій реалізації (таким чином, на будь-якій сервер додатків). Якщо ви знайомі з JDBC, це в основному та сама концепція, як і роботу драйверів JDBC. Див. Також ао Найпростіше кажучи, що таке фабрика?

Завантажити SDK Java EE SDK з Oracle.com містить в основному сервер GlassFish разом з рядом документації та прикладів, а також, можливо, і IDB NetBeans. Він вам не потрібен, якщо вам потрібен інший сервер та / або IDE.

EJB є частиною специфікації Java EE. Подивіться, це в API Java EE . Повноцінні сервери додатків Java EE підтримують це у вікні, але прості JSP / сервлетські контейнери цього не роблять.

Дивитися також:


Чи є різними реалізаціями Java EE EJB / Spring?

Ні, як було сказано, EJB є частиною Java EE. Spring - це окрема структура, яка замінює та покращує багато частин Java EE. Весна не обов'язково вимагає запуску Java EE. Ємність з голими кістками з серветками, як Tomcat, вже достатня. Простіше кажучи, Spring є конкурентом Java EE. Наприклад, "Весна" (окрема) конкурує EJB / JTA, Spring MVC конкурує JSF / JAX-RS, Spring DI / IoC / AOP конкурує з CDI, Spring Security конкурує JAAS / JASPIC тощо.

Ще за часів J2EE / EJB2 API EJB2 було жахливо впроваджувати та підтримувати. Тоді весна була набагато кращою альтернативою EJB2. Але оскільки EJB3 (Java EE 5), API EJB значно покращився на основі уроків, отриманих з Spring. Оскільки CDI (Java EE 6), насправді немає причини шукати знову інший фреймворк, як Spring, щоб зробити розробників простішими в розробці серед іншого рівня обслуговування.

Тільки коли ви використовуєте контейнер з серветками з голими кістками, наприклад Tomcat і не можете перейти на сервер Java EE, тоді Spring є більш привабливим, оскільки простіше встановити Spring на Tomcat. Неможливо встановити, наприклад, контейнер EJB на Tomcat, не змінюючи сам сервер, ви в основному будете винаходити TomEE.

Дивитися також:


2
Таким чином, про Java EE можна сказати, що визначає, яка підтримка повинна існувати для запуску типової програми JEE?
— Джеймс П.

4
@James: Так. Досить все в Java EE API є абстрактним. Java SE API також має кілька абстрактних частин, наприклад, JDBC, JAXP, JAXB тощо.
— BalusC

3
"Насправді немає причин шукати ще раз таку рамку, як Spring, щоб зробити розробників легшими" -> Воістину цінна інформація.
— коктейлі

@BalusC: Привіт, чи офіційна Sun Java EE .... посилання порушено, якщо ви дасте посилання, подібне до того, комусь це буде корисно.
— Абдул Рахман

Щоб запустити повну рамку Spring, контейнер Servlet буде достатньо, контейнер Servlet - це [веб-сервер + веб-контейнер (реалізує сервлет api)], де для запуску Java EE вам потрібен сервер додатків, як Glassfish. Ємності з сервлетами не вистачить. Контейнер сервлетів - це підмножина сервера додатків. Як я це розумію?
— переоцінка обміну

11

Java Enterprise Edition (Java EE) - це парасольова специфікація, яка посилається на ряд інших більш детальних специфікацій, серед яких Enterprise JavaBeans (EJB) є однією з найбільш важливих.

Прочитайте це - це пояснює різницю між Java EE та Spring

Дякую...


4
  • Джерело - Платформа Java 2, Enterprise Edition (J2EE) визначає стандарт для розробки компонентних багатосторонніх корпоративних програм. J2EE спрощує створення корпоративних програм, які є портативними, масштабованими та легко інтегруються із застарілими програмами та даними.

  • Джерело - Технологія Enterprise JavaBeans (EJB) - це архітектура компонентів на стороні сервера для платформи Java, Enterprise Edition (Java EE). Технологія EJB дозволяє швидко та спростити розвиток розподілених, транзакційних, безпечних та портативних програм на основі технології Java.

  • Чи є Java EE лише специфікацією? Що я маю на увазі: Є EJB Java EE?

    • Java EE - специфікація.

    • EJB - архітектура компонентів на стороні сервера для Java EE

  • Чи є різними реалізаціями Java EE EJB / Spring?

    • І EJB, і Spring є різними рамками, що слідують за Java EE.

6
Мабуть, не дуже корисно цитувати стародавній текст (2005) з давньої версії специфікації (J2EE). ОП спеціально попросила Java EE, яка є втіленням сучасного J2EE.
— Ар'ян Тіджм

-5

Простіше кажучи - JavaEE - це платформа.

Він складається з багатьох специфікацій, які є лише API. Конкретними конкретними реалізаціями цих API є так звана "Референтна реалізація"

  1. EJB - це лише одна специфікація в рамках платформи JavaEE
  2. Ні, Spring - це програма, яка може дозволити вам / мати підтримку для розробки програм JavaEE

EJB - Enterprise Java Beans


4
Ця відповідь нічого не додає до попередніх відповідей. Більше того, це не точно: лише одна конкретна реалізація є Довідковою, інші - ні. Невелика перша: Spring інтегрується з JavaEE, але може працювати без цього просто чудово.
— Таїр

@tair Так, лише 1 конкретна реалізація розглядається як "посилання" для, наприклад, JPA має багато реалізацій, але тільки EclipseLink є RI. Коли я згадав про RI, я мав на увазі різні API. я думаю, ви неправильно зрозуміли мою відповідь вище. Крім того, так, Spring інтегрується в JavaEE, про що я вже згадував вище.
— SoftwareDeveloper
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.