Що саме таке 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.