Набор спецификаций, расширяющих Java SE
Jakarta EE , ранее Java Platform, Enterprise Edition ( Java EE ) и Java 2 Platform, Enterprise Edition ( J2EE ), представляет собой набор спецификаций, расширяющих Java SE [1] спецификациями для корпоративных функций, таких как распределенные вычисления и веб-сервисы . [2] Приложения Jakarta EE запускаются в эталонных средах выполнения , которые могут быть микросервисами или серверами приложений , которые обрабатывают транзакции, безопасность, масштабируемость, параллелизм и управление компонентами, которые они развертывают.
Jakarta EE определяется его спецификацией . Спецификация определяет API (интерфейс прикладного программирования) и их взаимодействие. Как и в случае с другими спецификациями Java Community Process , поставщики должны соответствовать определенным требованиям соответствия, чтобы объявить свои продукты соответствующими Jakarta EE .
Примерами контекстов, в которых используются среды выполнения ссылок Jakarta EE, являются: электронная коммерция , бухгалтерский учет , банковские информационные системы .
История
Начиная с версии 1.2 платформа была известна как Java 2 Platform, Enterprise Edition или J2EE , пока в версии 1.5 название не было изменено на Java Platform, Enterprise Edition или Java EE .
Java EE поддерживалась Oracle в рамках Java Community Process . 12 сентября 2017 года корпорация Oracle объявила, что представит Java EE в Eclipse Foundation . [3] Проект верхнего уровня Eclipse получил название Eclipse Enterprise for Java (EE4J). [4] Фонд Eclipse не смог договориться с Oracle по поводу использования товарных знаков javax и Java. [5] Oracle владеет товарным знаком «Java», и платформа была переименована из Java EE в Jakarta EE. [6] [7] Название относится к крупнейшему городу на острове Ява , а также столице Индонезии Джакарте . [8] Название не следует путать с бывшим проектом Jakarta Project , который способствовал появлению ряда текущих и бывших проектов Java в Apache Software Foundation .
Технические характеристики
Jakarta EE включает в себя несколько спецификаций, которые служат различным целям, таким как создание веб-страниц, чтение и запись в базу данных транзакционным способом, управление распределенными очередями.
API-интерфейсы Jakarta EE включают в себя несколько технологий, расширяющих функциональность базовых API-интерфейсов Java SE , таких как Jakarta Enterprise Beans , коннекторы , сервлеты , Jakarta Server Pages и несколько технологий веб-сервисов .
Веб-спецификации
- Jakarta Servlet : определяет, как управлять HTTP-запросами, синхронным или асинхронным способом. Это низкоуровневый и другие спецификации Jakarta EE полагаются на него;
- Jakarta WebSocket: спецификация API, определяющая набор API для обслуживания соединений WebSocket ;
- Jakarta Faces : технология построения пользовательских интерфейсов из компонентов;
- Jakarta Expression Language ( EL ) — это простой язык, изначально разработанный для удовлетворения особых потребностей разработчиков веб-приложений. Он используется конкретно в Jakarta Faces для привязки компонентов к (backing) bean-компонентам и в Contexts and Dependency Injection к именованным bean-компонентам, но может использоваться на всей платформе.
Спецификации веб-сервисов
Спецификации предприятия
- Jakarta Activation ( JAF ) определяет архитектуру для расширения компонентов Beans путем предоставления типизации данных и привязок таких типов.
- Jakarta Contexts and Dependency Injection ( CDI ) — это спецификация, предоставляющая контейнер для внедрения зависимостей ;
- Спецификация Jakarta Enterprise Beans ( EJB ) определяет набор облегченных API, которые контейнер объектов (контейнер EJB) будет поддерживать для предоставления транзакций (с использованием JTA ), удаленных вызовов процедур (с использованием RMI или RMI-IIOP ), управления параллелизмом , внедрения зависимостей и управления доступом для бизнес-объектов. Этот пакет содержит классы и интерфейсы Jakarta Enterprise Beans, которые определяют контракты между корпоративным компонентом и его клиентами, а также между корпоративным компонентом и контейнером ejb.
- Jakarta Persistence ( JPA ) — это спецификации объектно-реляционного отображения между таблицами реляционной базы данных и классами Java.
- Jakarta Transactions ( JTA ) содержит интерфейсы и аннотации для взаимодействия с поддержкой транзакций, предлагаемой Jakarta EE. Несмотря на то, что этот API абстрагируется от деталей действительно низкого уровня, интерфейсы также считаются несколько низкоуровневыми, и предполагается, что среднестатистический разработчик приложений в Jakarta EE либо полагается на прозрачную обработку транзакций абстракциями EJB более высокого уровня, либо использует аннотации, предоставляемые этим API в сочетании с управляемыми компонентами CDI.
- Jakarta Messaging ( JMS ) предоставляет программам Java общий способ создания, отправки, получения и чтения сообщений корпоративной системы обмена сообщениями.
Другие характеристики
- Jakarta Validation: Этот пакет содержит аннотации и интерфейсы для поддержки декларативной валидации, предлагаемой API Jakarta Validation. Jakarta Validation предоставляет унифицированный способ предоставления ограничений для bean-компонентов (например, классов модели Jakarta Persistence), которые могут быть применены кросс-слоем. В Jakarta EE Jakarta Persistence учитывает ограничения валидации bean-компонентов на уровне сохранения, тогда как JSF делает это на уровне представления.
- Jakarta Batch предоставляет средства пакетной обработки в приложениях для запуска длительных фоновых задач, которые могут включать большой объем данных и которые может потребоваться периодически выполнять.
- Jakarta Connectors — это инструмент на основе Java для соединения серверов приложений и корпоративных информационных систем ( EIS ) в рамках интеграции корпоративных приложений ( EAI ). Это низкоуровневый API, нацеленный на поставщиков, с которыми среднестатистический разработчик приложений обычно не контактирует.
Веб-профиль
В попытке ограничить след веб-контейнеров, как в физическом, так и в концептуальном плане, был создан веб-профиль, подмножество спецификаций Jakarta EE. Веб-профиль Jakarta EE включает в себя следующее:
Сертифицированные среды выполнения ссылок
Хотя по определению все реализации Jakarta EE предоставляют один и тот же базовый уровень технологий (а именно, спецификацию Jakarta EE и связанные с ней API), они могут значительно различаться по дополнительным функциям (таким как коннекторы , кластеризация , отказоустойчивость , высокая доступность , безопасность и т. д.), установленному размеру, объему памяти , времени запуска и т. д.
Джакарта ЭЭ
JavaEE-версия
Пример кода
Приведенный ниже пример кода демонстрирует, как различные технологии Java EE 7 используются совместно для создания веб-формы для редактирования пользователя.
В Jakarta EE (веб) UI может быть создан с использованием Jakarta Servlet , Jakarta Server Pages ( JSP ) или Jakarta Faces ( JSF ) с Facelets . В примере ниже используются Faces и Facelets . Не показано явно, что компоненты ввода используют API Jakarta EE Bean Validation под капотом для проверки ограничений.
<html xmlns= "http://www.w3.org/1999/xhtml" xmlns:h= "http://xmlns.jcp.org/jsf/html" xmlns:f= "http://xmlns.jcp.org/jsf/core" > <f:metadata> <f:viewParam name= "user_id" value= "#{userEdit.user}" converter= "#{userConvertor}" /> </f:metadata> <h:тело> <h:сообщения /> <h:form> <h:panelGrid columns= "2" > <h:outputLabel for= "firstName" value= "Имя" /> <h:inputText id= "firstName" value= "#{userEdit.user.firstName}" label= "Имя" /> <h:outputLabel for= "lastName" value= "Фамилия" /> <h:inputText id= "lastName" value= "#{userEdit.user.lastName}" label= "Фамилия" /> <h:commandButton action= "#{userEdit.saveUser}" value= "Сохранить" /> </h:panelGrid> </h:form> </h:body> </html>
Пример класса Backing Bean
Для облегчения представления Jakarta EE использует концепцию, называемую «Backing Bean». В примере ниже используются Contexts and Dependency Injection (CDI) и Jakarta Enterprise Beans ( EJB ).
@Named @ViewScoped открытый класс UserEdit { частный Пользователь пользователь ; @Inject частный UserDAO userDAO ; public String saveUser ( ) { userDAO.save ( this.user ) ; addFlashMessage ( " Пользователь " + this.user.getId ( ) + " сохранено " ) ; вернуть "users.xhtml?faces-redirect=true" ; } public void setUser ( Пользователь пользователь ) { this.user = пользователь ; } public User getUser () { return user ; } }
Пример класса объекта доступа к данным
Для реализации бизнес-логики Jakarta Enterprise Beans ( EJB ) — это специализированная технология в Jakarta EE. Для фактического сохранения можно использовать JDBC или Jakarta Persistence (JPA). В примере ниже используются EJB и JPA. Не показано явно, что JTA используется под прикрытием EJB для управления транзакционным поведением.
@Stateless публичный класс UserDAO { @PersistenceContext частный EntityManager entityManager ; public void save ( Пользователь пользователь ) { entityManager . persist ( пользователь ); } public void update ( Пользователь пользователь ) { entityManager . merge ( пользователь ); } public List < User > getAll ( ) { return entityManager.createNamedQuery ( " User.getAll " , User.class ) .getResultList ( ) ; } }
Пример класса сущности
Для определения классов сущностей/моделей Jakarta EE предоставляет Jakarta Persistence ( JPA ), а для выражения ограничений на эти сущности — Bean Validation API. В примере ниже используются обе эти технологии.
@Entity открытый класс Пользователь { @Id @GeneratedValue ( strategy = IDENTITY ) частный целочисленный идентификатор ; @Size ( min = 2 , message = "Имя слишком короткое" ) private String firstName ; @Size ( min = 2 , message = "Фамилия слишком короткая" ) private String lastName ; public Integer getId () { return id ; } public void setId ( Integer id ) { this.id = id ; } public String getFirstName () { return firstName ; } public void setFirstName ( String firstName ) { this.firstName = firstName ; } public String getLastName () { return lastName ; } public void setLastName ( String lastName ) { this . lastName = lastName ; } }
Смотрите также
Ссылки
- ^ "Различия между Java EE и Java SE - Ваша первая чашка: Введение в платформу Java EE". Docs.oracle.com. 2012-04-01 . Получено 2012-07-18 .
- ^ "Обзор Java EE". Oracle Corporation . Получено 26 февраля 2017 г.
- ^ Уотерс, Джон К. (12 сентября 2017 г.). «Java EE переходит в Eclipse Foundation». ADTmag . Получено 13 сентября 2017 г.
- ^ Битон, Уэйн. "EE4J FAQ". Eclipse Foundation .
- ^ Милинкович, Майк (3 мая 2019 г.). «Обновление о правах Jakarta EE на товарные знаки Java». Блог. Жизнь в Eclipse . Получено 25 июля 2024 г.
- ^ Чиргвин, Ричард (4 марта 2018 г.). «Java EE переименована в «Jakarta EE» после ссоры с Big Red». Программное обеспечение. The Register . Получено 19 марта 2018 г.
- ^ Vaughan-Nichols, Steven J. (5 марта 2018 г.). «Прощай, JEE, здравствуй, Jakarta EE». Linux и открытый исходный код. ZDNet . Получено 10 июля 2020 г.
- ^ Таймс, Арьян (27 февраля 2020 г.). «Переход с Java EE на Jakarta EE». Журнал Ява. blogs.oracle.com . Проверено 25 июля 2024 г.
- ^ "Релизы Джакарты EE" . Джакарта EE . Фонд Эклипс . Проверено 17 июля 2024 г.
- ^ Обрадович, Таня; Гримстад, Ивар (22.09.2022). «Рабочая группа Jakarta EE Фонда Eclipse выпускает Jakarta EE 10, чтобы возвестить о начале эры облачной Java». Новости. Jakarta EE (пресс-релиз). Фонд Eclipse . Получено 17.07.2024 .
- ^ Обрадович, Таня; Гримстад, Ивар (2021-05-25). «Рабочая группа Jakarta EE выпускает Jakarta EE 9.1, поскольку индустрия продолжает внедрять Open Source Enterprise Java». Новости. Jakarta EE (пресс-релиз). Eclipse Foundation . Получено 2022-03-05 .
- ^ Ммайель, Шабнам; Обрадович, Таня (08.12.2020). «Выпущена Jakarta EE 9!». Новости. Джакарта Э.Э. (Пресс-релиз). Фонд Эклипс . Проверено 5 марта 2022 г.
- ^ Ммайель, Шабнам; Обрадович, Таня (10 сентября 2019 г.). «Выпущена Jakarta EE 8!». Новости. Джакарта Э.Э. (Пресс-релиз). Фонд Эклипс . Проверено 5 марта 2022 г.
- ^ Крилл, Пол (21 ноября 2003 г.). «Сертифицировано по спецификации J2EE 1.4». Разработка программного обеспечения. InfoWorld . Получено 05.03.2022 .
- ^ Коупленд, Ли (24 сентября 2001 г.). "Sun представляет J2EE 1.3". Разработка программного обеспечения. Computerworld . Получено 05.03.2022 .
- ^ "JSR 316: Java Platform, Enterprise Edition 6 (Java EE 6) Specification". Процесс сообщества Java . Корпорация Oracle . Получено 2022-03-05 .
- ^ "JSR 342: Java Platform, Enterprise Edition 7 (Java EE 7) Specification". Процесс сообщества Java . Корпорация Oracle . Получено 2022-03-05 .
- ^ "Java Platform, Enterprise Edition 8 (Java EE 8) Web Profile Specification" (PDF) . GitHub . Oracle Corporation . Архивировано (PDF) из оригинала 2022-10-09 . Получено 2022-02-05 .
- ^ "Определение веб-профиля". Jakarta EE WebProfile . 8. Jakarta EE. Eclipse Foundation . Получено 2022-03-05 .
- ^ "Определение веб-профиля". Jakarta EE WebProfile . 9. Jakarta EE. Eclipse Foundation . Получено 2022-03-05 .
- ^ "Определение веб-профиля". Jakarta EE WebProfile . 9.1. Jakarta EE. Eclipse Foundation . Получено 2022-03-05 .
- ^ "Определение веб-профиля". Jakarta EE WebProfile . 10. Jakarta EE. Eclipse Foundation . Получено 27.09.2022 .
- ^ "Продукты, совместимые с Jakarta EE". Jakarta.ee .
- ^ "Продукты, совместимые с Jakarta EE 9". Jakarta.ee .
- ^ "Продукты, совместимые с Jakarta EE 8". Jakarta.ee .
- ^ "Платформа Jakarta EE 10 и MicroProfile 6 в Open Liberty 23.0.0.1-beta". openliberty.io .
- ^ ab "Поддержка Jakarta EE 10, MicroProfile 6 и Java SE 20 в Open Liberty 23.0.0.3". openliberty.io .
- ^ "Apache TomEE" . tomee.apache.org . Проверено 08 января 2024 г.
- ^ abcdefg "Совместимость с Java EE". www.oracle.com . Получено 05.08.2018 .
- ^ abcdefg «Совместимость с Java EE».
- ^ ab "Сравнение GlassFish Open Source Edition версий 2.x и 3.0.x". Архивировано из оригинала 20.12.2012.
- ^ "Совместимость Java EE". Java.sun.com. 2010-09-07 . Получено 2012-07-18 .
- ^ "Oracle Weblogic Server 14.1.1". www.oracle.com .
- ^ "Oracle Weblogic Server 12.1.1". www.oracle.com .
- ^ Lyons, Will; Humphrey, Pieter (2011). "Oracle Web Logic Server 12c: Разработка современных, легких приложений Java EE 6" (PDF) . Архивировано из оригинала (PDF) 2011-12-15 . Получено 2011-12-03 .
- ^ «Совместимость с Java EE». www.oracle.com .
- ^ "JBoss AS 7.1.0.Final "Thunder" выпущен - сертифицирован Java EE 6 Full Profile! | My Wiki | Planet JBoss Community". Planet.jboss.org. 2012-02-17 . Получено 2012-07-18 .
- ^ «Сервер приложений JBoss — Сообщество JBoss».
- ^ «Сервер приложений JBoss — Сообщество JBoss».
- ^ «Совместимость с Java EE».
- ^ "JBoss AS теперь сертифицирован EE5!". 15 сентября 2008 г. Архивировано из оригинала 20 сентября 2008 г. Получено 7 августа 2016 г.
- ^ «Доступность платформы приложений Red Hat JBoss Enterprise 7.2».
- ^ Business Wire (2012-06-20). "Red Hat запускает JBoss Enterprise Application Platform 6, чтобы помочь предприятиям перенести разработку и развертывание приложений в облако". Business Wire . Получено 2012-07-18 .
- ^ "Что нового в WebSphere Application Server V8". IBM.com . Получено 2012-07-18 .
- ^ ab "IBM WebSphere Application Server Liberty предоставляет первый готовый к использованию сервер приложений, совместимый с Java EE 8, и расширяет поддержку приложений Spring Boot". IBM . 10 июля 2018 г. . Получено 12 июля 2018 г. .
- ^ "Java EE 7 - Протестированные конфигурации - IBM WebSphere Application Server Liberty Profile". Oracle.com .
- ^ "Java EE 7 появилась в WAS Liberty - WASdev". 25 июня 2015 г.
- ^ «Протестированные конфигурации IBM Java EE 6 Web Profile».
- ^ "Apache Geronimo: Индекс". geronimo.apache.org . 25 января 2010 г.
- ^ "Apache Geronimo полностью сертифицирован для Java EE 6 - The H Open: новости и возможности". H-online.com. 2011-11-14. Архивировано из оригинала 20 апреля 2012 года . Получено 2012-07-18 .
- ^ "Протестированные конфигурации, Java EE 6 - TMAX JEUS 7". Oracle.com. 2010-09-07 . Получено 2012-07-18 .
- ^ "Java EE6 Web Application Server, WAS Software". Us.tmaxsoft.com. Архивировано из оригинала 2012-07-02 . Получено 2012-07-18 .
- ^ «Java EE 6 — Протестированные конфигурации, Java EE 6 — Hitachi uCosminexus Application Server v9.0». Oracle.com.
- ^ "Fujitsu Interstage Application Server powered by Windows Azure". Архивировано из оригинала 10 августа 2011 г.
- ^ "Протестированные конфигурации, Java EE6 - Fujitsu Interstage". Oracle.com. 2010-09-07 . Получено 2012-07-18 .
- ^ "Fujitsu выпускает Interstage Application Server V10.1". Fujitsu.
- ^ «Сертификация сервера приложений NEC WebOTX V9.x».
- ^ "Apache TomEE" . Openejb.apache.org . Проверено 18 июля 2012 г.
- ^ "MarketWatch.com". MarketWatch.com . Получено 2012-07-18 .
- ^ TomEE, Апач. «Апач ТомEE 7.0.1».
- ^ "Resin Application Server Java EE 6 Web Profile" (PDF) . caucho.com . 2011. Архивировано (PDF) из оригинала 2022-10-09.
- ^ «Пожалуйста, приветствуйте Siwpas как сертифицированную опцию Java EE!». Oracle.com . Получено 2015-12-07 .
- ^ "JOnAS 5.3.0 RC1 выпущен". jonas.ow2.org . 2013-01-07. Архивировано из оригинала 2013-10-15 . Получено 2014-02-25 .
- ^ «SAP NetWeaver Cloud Java EE 6 Web Profile сертифицирован! (Аквариум)».
- ^ "SAP Software Solutions - Business Applications and Technology". Архивировано из оригинала 2009-12-07 . Получено 2010-05-03 .
Внешние ссылки
Викискладе есть медиафайлы по теме Джакарты EE .
- Официальный сайт
- Совместимые с Jakarta EE продукты: корпоративные приложения Java и веб-серверы — Eclipse Foundation
- Учебное пособие по Джакарте EE
- Учебное пособие First Cup of Jakarta EE: Введение в Jakarta EE
- Платформа Java, Enterprise Edition (Java EE), Oracle Technology Network
- Официальный канал Jakarta EE на YouTube