Я занимаюсь Java SE уже несколько лет и перехожу на Java EE. Однако у меня возникают некоторые проблемы с пониманием некоторых аспектов Java EE.
Java EE - это просто спецификация? Я имею в виду: является ли EJB Java EE?
Являются ли EJB / Spring разными реализациями Java EE?
Извините, что спрашиваю, но у меня возникли некоторые трудности с пониманием того, что такое Java EE.
Кто-нибудь может объяснить, что такое Java EE? И EJB?
Переведено автоматически
Ответ 1
(Обновлено в мае 2023 г.)
Прежде всего, "Java EE" с сентября 2019 года была переименована в "Jakarta EE", начиная с версии 8. Исторически также существовал термин "J2EE", который охватывал версии с 1.2 по 1.4. Термин "Java EE" охватывал версии с 5 по 8. Смотрите также Jakarta EE, история в Википедии.
Является ли Jakarta EE просто спецификацией? Я имею в виду: является ли EJB Jakarta EE?
Jakarta EE действительно является абстрактной спецификацией. Любой желающий может разработать и предоставить рабочую реализацию спецификации. Конкретными реализациями являются так называемые серверы приложений, такие как WildFly, TomEE, GlassFish, Liberty, WebLogic и др. Существуют также контейнеры сервлетов, которые реализуют только JSP / сервлетную часть огромного Jakarta EE API, такие как Tomcat, Jetty и т.д.
Мы, разработчики Jakarta EE, должны написать код, использующий спецификацию (т. Е. Импортировать толькоjakarta.* классы в наш код вместо классов, специфичных для реализации, таких как org.jboss.wildfly.*, com.sun.glassfish.*, org.apache.tomcat.* и т.д.), и тогда мы сможем запускать наш код в любой реализации (таким образом, на любом сервере приложений). Если вы знакомы с JDBC, это, по сути, та же концепция, что и работа драйверов JDBC. Смотрите также a.o. Проще говоря, что такое factory?
EJB является частью спецификации Jakarta EE. Смотрите, это в Jakarta EE API. Полноценные серверы приложений Jakarta EE поддерживают ее "из коробки", а простые контейнеры JSP / сервлетов - нет.
Являются ли EJB / Spring разными реализациями Jakarta EE?
Нет, как уже было сказано, EJB является частью Jakarta EE. Spring - это автономный фреймворк, который заменяет и улучшает многие части Jakarta EE. Spring не обязательно требует запуска Jakarta EE. Простого контейнера сервлетов, такого как Tomcat, уже достаточно. Проще говоря, Spring является конкурентом Jakarta EE. Например, "Spring" (standalone) конкурирует с EJB / JTA, Spring MVC конкурирует с Faces / REST / MVC, Spring DI / IoC / AOP конкурирует с CDI, Spring Security конкурирует с JASPIC / Security, Spring Boot конкурирует с MicroProfile и т.д.
Во времена J2EE / EJB2 API EJB2 было ужасно внедрять и поддерживать. Spring тогда был гораздо лучшей альтернативой EJB2. Но начиная с EJB3 (Java EE 5), EJB API был значительно улучшен на основе уроков, извлеченных из Spring. Начиная с CDI (Java EE 6), на самом деле нет причин снова обращаться к другому фреймворку, такому как Spring, чтобы упростить разработчикам разработку, среди прочего, сервисного уровня.
Только когда вы используете простой контейнер сервлетов, такой как Tomcat, и не можете перейти на сервер Jakarta EE, Spring более привлекателен, поскольку Spring проще установить на Tomcat. Невозможно установить, например, контейнер EJB на Tomcat без изменения самого сервера, вы, по сути, заново изобретете TomEE.
Java Enterprise Edition (Java EE) - это общая спецификация, которая ссылается на ряд других, более подробных спецификаций, из которых Enterprise JavaBeans (EJB) является одной из наиболее важных.
Прочтите это - это объясняет разницу между Java EE и Spring
Спасибо...
Ответ 3
Исходный код -- Платформа Java 2, корпоративная версия (J2EE) определяет стандарт для разработки многоуровневых корпоративных приложений на основе компонентов. J2EE упрощает создание корпоративных приложений, которые являются переносимыми, масштабируемыми и легко интегрируются с устаревшими приложениями и данными .
Источник -- Технология Enterprise JavaBeans (EJB) - это архитектура серверных компонентов для платформы Java Enterprise Edition (Java EE). Технология EJB обеспечивает быструю и упрощенную разработку распределенных, транзакционных, безопасных и переносимых приложений на основе технологии Java.
Java EE - это просто спецификация? Я имею в виду: является ли EJB Java EE?
Java EE - это спецификация.
EJB - это архитектура серверных компонентов для Java EE
Являются ли EJB / Spring разными реализациями Java EE?
И EJB, и Spring - это разные фреймворки, следующие за Java EE.
Ответ 4
Все, что вам нужно знать о Java EE, можно найти, среди прочего, на @ официальном веб-сайте Oracle. Вам также может быть интересно прочитать спецификацию API для выпуска 8. Стоит потратить время на изучение руководства по Java EE 8. Возможно, вы захотите начать именно с нее, потому что она предоставляет очень хороший обзор всей платформы.