Jakarta EE

редактировать
Jakarta EE
Jakarta EE logo schooner color stacked default
Разработчик (и) Eclipse Foundation
Программное обеспечение Player Java
Программирование язык (и) Java
Приложение (я)Сервер приложений
СтатусАктивная
ЛицензияОбщественная лицензия Eclipse или GNU General Общественная лицензия с Исключением пути к классам

Jakarta EE, ранее Java Enterprise Edition (Java EE ) и Java 2 Platform, Enterprise Редакция (J2EE ) - это набор спецификаций, расширяющий Java SE 8 спецификациями для корпоративных функций, таких как распределенные вычисления и веб-сервисы. Приложения Jakarta EE работают на микросервисах или серверах приложений, которые обрабатывают транзакции, безопасность, масштабируемость, параллелизм и управление развертываемыми компонентами..

Jakarta EE определяется его спецификацией. В спецификации определены API (интерфейс прикладного программирования) и их взаимодействия. Как и в случае других спецификаций Java Community Process, поставщики должны соответствовать определенным требованиям соответствия, чтобы декларировать свои продукты как совместимые с Jakarta EE.

Примеры контекстов, в которых используются среды выполнения ссылок Jakarta EE: электронная коммерция, бухгалтерский учет, банковские информационные системы.

Содержание
  • 1 История
  • 2 Технические характеристики
    • 2.1 Веб-спецификации
    • 2.2 Спецификации веб-служб
    • 2.3 Корпоративные спецификации
    • 2.4 Другие характеристики
  • 3 Веб-профиль
  • 4 Сертифицировано ссылки на время выполнения
  • 5 Пример кода
    • 5.1 Пример класса резервного компонента
    • 5.2 Пример класса объекта доступа к данным
    • 5.3 Пример класса объекта
  • 6 См. также
  • 7 Ссылки
  • 8 Внешние ссылки
История

Платформа была известна как Java 2 Platform, Enterprise Edition или J2EE с версии 1.2, пока название не было изменено на Java Platform, Enterprise Edition или Java EE в версии 1.5.

Java EE поддерживался Oracle в рамках процесса сообщества Java. 12 сентября 2017 года Oracle Corporation объявила, что отправит Java EE в Eclipse Foundation. Проект верхнего уровня Eclipse был назван Eclipse Enterprise for Java (EE4J). Eclipse Foundation была вынуждена изменить название, потому что Oracle владеет торговой маркой для названия «Java» и переименовала платформу Java EE в Jakarta EE. Это имя не следует путать с бывшим Jakarta Project, который способствовал развитию ряда текущих и бывших Java-проектов в Apache Software Foundation.

  • J2EE 1.2 (12 декабря 1999 г.)
  • J2EE 1.3 (24 сентября 2001 г.)
  • J2EE 1.4 (11 ноября 2003 г.)
  • Java EE 5 (11 мая 2006 г.)
  • Java EE 6 (декабрь 10, 2009)
  • Java EE 7 (28 мая 2013 г., но 5 апреля 2013 г. в соответствии со спецификацией. 12 июня 2013 г. было запланированной датой запуска)
  • Java EE 8 (август 31, 2017)
  • Jakarta EE 8 (10 сентября 2019 г.) - полностью совместим с Java EE 8
  • Jakarta EE 9 (Цель: 31 августа 2020 г.)
Технические характеристики

Jakarta EE включает несколько спецификаций, которые служат разным целям, таким как создание веб-страниц, чтение и запись из базы данных транзакционным способом, управление распределенными очередями.

API-интерфейсы Jakarta EE включают несколько технологий, расширяющих функциональные возможности базовых Java SE API-интерфейсов, например Jakarta Enterprise Beans, соединители, сервлеты, Jakarta Server Pages и несколько технологий веб-сервисов.

Веб-спецификации

  • Jakarta Servlet : определяет, как управлять HTTP-запросами синхронным или асинхронным способом. Это низкий уровень, и другие спецификации Jakarta EE полагаются на него;
  • Jakarta WebSocket: спецификация API, которая определяет набор API для обслуживания соединений WebSocket ;
  • Jakarta Server Faces : технология построения пользовательских интерфейсов из компонентов;
  • Jakarta Expression Language (EL) - это простой язык, изначально разработанный для удовлетворения особых потребностей разработчиков веб-приложений. Он используется специально в Jakarta Server Faces для привязки компонентов к (поддержки) bean-компонентов и в Contexts and Dependency Injection для именования bean-компонентов, но может использоваться во всей платформе.

Спецификации веб-сервисов

  • Jakarta RESTful Web Services обеспечивает поддержку в создании веб-сервисов в соответствии с архитектурным шаблоном Передача репрезентативного состояния (REST);
  • Jakarta JSON Processing - это набор спецификаций для управления информацией, закодированной в формате JSON;
  • Jakarta JSON Binding предоставляет спецификации для преобразования информации JSON в классы Java или из них;
  • Jakarta XML Binding позволяет отображать XML в объекты Java;
  • Jakarta XML Web Services можно использовать для создания SOAP

Корпоративные спецификации

  • Jakarta Contexts and Dependency Injection (CDI) - это спецификация для предоставления контейнера внедрения зависимостей ;
  • Jakarta Enterprise Beans (EJB) спецификация определяет набор легких API, которые объект c ontainer (контейнер 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 создавать, отправлять, получать и читать сообщения корпоративной системы обмена сообщениями.

Другие спецификации

  • Проверка: этот пакет содержит аннотации и интерфейсы для поддержки декларативной проверки, предлагаемой Bean Validation API. Проверка bean-компонентов обеспечивает унифицированный способ предоставления ограничений для bean-компонентов (например, классов модели JPA), которые могут применяться на нескольких уровнях. В Jakarta EE JPA учитывает ограничения проверки bean-компонентов на уровне сохраняемости, тогда как JSF делает это на уровне представления.
  • Jakarta Batch предоставляет средства для пакетной обработки в приложений для выполнения длительных фоновых задач, которые могут включать большой объем данных и которые могут нуждаться в периодическом выполнении.
  • Jakarta Connectors - это инструмент на основе Java для подключения серверов приложений и информационных систем предприятия (EIS) в качестве часть интеграции корпоративных приложений (EAI). Это низкоуровневый API, нацеленный на поставщиков, с которыми средний разработчик приложений обычно не контактирует.
Веб-профиль

В попытке ограничить размер веб-контейнеров, как на физическом, так и на внутреннем уровне. концептуально, был создан веб-профиль, являющийся частью спецификаций Jakarta EE. Веб-профиль Jakarta EE включает следующее:

SpecificationJava EE 6Java EE 7Java EE 8. Jakarta EE 8Jakarta EE 9
Jakarta Servlet 3.03.14.05.0
Jakarta Server Pages (JSP)2.22.32.33.0
Джакартский язык выражений (EL)2.23.03.04.0
(JSR-45)1.01.01.02.0
Стандартная библиотека тегов Джакарты (JSTL)1.21.21.22.0
Лица сервера Джакарты (JSF)2.02.22.33.0
Jakarta RESTful Web Services (JAX-RS)1.12.02.13.0
(WebSocket)N/A1.01,12,0
(JSON-P)N/A1,01,12,0
Н / ДН / Д1,12,0
(JSR 250 )1,11,21.32.0
Jakarta Enterprise Beans (EJB)3.1 Lite3.2 Lite3.2 Lite4.0 Lite
Jakarta Transactions (JTA)1,11,21,22,0
Сохранение Jakarta (JPA)2.02.12.23.0
Джакарта Bean Validation 1.01.12,03,0
1,01,01,02,0
1,11,21,22,0
Джакарта Внедрение контекстов и зависимостей (CDI)1,01,12,03.0
1.01.01.02.0
N/AN/A1.02.0
N/A1.01.12.0
Сертифицированная справочная среда выполнения

Хотя по определению все реализации Jakarta EE предоставляют один и тот же базовый уровень технологий (а именно, спецификацию Jakarta EE и связанные API), они могут значительно различаться в отношении дополнительных функций (l ike коннекторы, кластеризация, отказоустойчивость, высокая доступность, безопасность и т. д.), установленный размер, объем памяти, время запуска и т. д.

Ссылка на время выполненияРазработчикСертифицировано Java EE 8 - ПолнаяСертифицировано Java EE 8 - WebСертифицировано Java EE 7 - ПолнаяСертифицировано Java EE 7 - WebСертифицировано Java EE 6 - Полная. Официальная страница Oracle для совместимости с Java EE.Сертификат Java EE 6 - WebСертификат Java EE 5Сертификат J2EE 1.4Лицензирование
GlassFish server Open Source EditionOracle Да v5.0Да v5.0Да v4.xДа v4.xДа v3.x и вышеДа Веб-профиль v3.xДа v2.1.xБесплатное ПО
Oracle GlassFish ServerOracleДа На основе v3 на сервере приложений GlassFish с открытым исходным кодомДа Сервер приложений Sun Java System v9.0Да Сервер приложений Sun Java System v8.2Собственный программное обеспечение
Oracle WebLogic Server OracleДа 14.1.1Да 12.2.1Да v12cДа v10.3.5.0Да v9Проприетарное программное обеспечение
WildFly Red Hat Да v14.xДа v14.xДа v8.1Да v8. 0.0.FinalДа v7.1Да v6.0 и v7.0Да v5.1Да v4.xБесплатное программное обеспечение
JBoss Enterprise Application Platform Red Hat Да v7.2Да v7.0Да v7.0Да v6.0Да v5Собственное ПО
IBM WebSphere Application Server IBM Да v9.xДа v9.xДа v8Да v7ДаСобственное программное обеспечение
IBM WebSphere Application Server Liberty IBM Да v18.0.0.2Да v18.0.0.2Да v8.5.5.6Да v8.5.5.6Да v8.5.5Запатентованное программное обеспечение
Open Liberty IBMДа v18.0.0.2Да v18.0.0.2Бесплатное программное обеспечение
Сообщество IBM WebSphere Application Server Редакция IBM Да v3.0Да v2.1Собственное ПО
Apache Geronimo Apache Да v3.0-beta-1Да v2. 0Да v1.0Бесплатное программное обеспечение
JEUSTmaxSoft Да v8Да v7Да v6Да v5Проприетарное программное обеспечение
Сервер приложений CosminexusHitachi Да v10.0Да v9Фирменное программное обеспечение
Сервер межкаскадных приложений Fujitsu Fujitsu Да v12.0Да v1 Azure / v10.1ДаСобственное ПО
WebOTX NEC ДаДаСобственное ПО
Сервер приложений BESBaolandeДа v9.5
Apache TomEE Apache Нет 7 (Java EE 7 похож на, но не сертифицирован)ДаБесплатное программное обеспечение
Resin Server Caucho Да v4. 0ДаПроприетарное программное обеспечение
OW2 Да v6.0Бесплатное программное обеспечение
JOnAS OW2 Да v5.3 rc1ДаДаБесплатное программное обеспечение
SAP NetWeaver SAP Да v2.xДаДаПроприетарное программное обеспечение
Oracle Containers для Java EE OracleДаФирменное программное обеспечение
Oracle iPlanet Web Server OracleДа Sun Java System Web ServerСобственное программное обеспечение
Oracle Application Server 10g OracleДаСобственное программное обеспечение
Pramati ServerPramati TechnologiesДа v5.0Проприетарное программное обеспечение
Trifork T4ДаФирменное ПО
Syba se Enterprise Application ServerSybase ДаПроприетарное программное обеспечение
Пример кода

Пример кода, показанный ниже, демонстрирует, как различные технологии в Java EE 7 используются вместе для создания веб-форма для редактирования пользователя.

В Jakarta EE (веб-интерфейс) пользовательский интерфейс можно создать с помощью Jakarta Servlet, Jakarta Server Pages (JSP) или Jakarta Server Faces (JSF) с Facelets. В приведенном ниже примере используются JSF и Facelets. Явно не показано, что входные компоненты используют Jakarta EE Bean Validation API для проверки ограничений.

Пример класса Backing Bean

Чтобы облегчить представление, Jakarta EE использует концепцию, называемую «Backing Bean». В приведенном ниже примере используются внедрение контекстов и зависимостей (CDI) и Jakarta Enterprise Beans (EJB).

@Named @ViewScoped открытый класс UserEdit {частный пользователь-пользователь; @Inject private UserDAO userDAO; общедоступная строка saveUser () {userDAO.save (this.user); addFlashMessage («Пользователь» + this.user.getId () + «сохранен»); вернуть "users.xhtml? faces-redirect = true"; } public void setUser (Пользователь-пользователь) {this.user = user; } общедоступный пользователь getUser () {пользователь возврата; }}

Пример класса объекта доступа к данным

Для реализации бизнес-логики Jakarta Enterprise Beans (EJB) является специальной технологией в Jakarta EE. Для фактического сохранения может использоваться JDBC или Jakarta Persistence (JPA). В приведенном ниже примере используются EJB и JPA. Не показано явно, что JTA используется EJB для управления транзакционным поведением.

@Stateless открытый класс UserDAO {@PersistenceContext private EntityManager entityManager; public void save (Пользователь-пользователь) {entityManager.persist (пользователь); } общедоступное обновление void (Пользователь-пользователь) {entityManager.merge (пользователь); } открытый список getAll () {return entityManager.createNamedQuery ("User.getAll", User.class).getResultList (); }}

Пример класса сущности

Для определения классов сущностей / моделей Jakarta EE предоставляет Jakarta Persistence (JPA), а для выражения ограничений для этих сущностей - API проверки компонентов. В приведенном ниже примере используются обе эти технологии.

@Entity открытый класс User {@Id @GeneratedValue (strategy = IDENTITY) частный целочисленный идентификатор; @Size (min = 2, message = "Имя слишком короткое") private String firstName; @Size (min = 2, message = "Слишком короткая фамилия") private String lastName; общедоступное целое число getId () {идентификатор возврата; } public void setId (Целочисленный идентификатор) {this.id = id; } общедоступная строка getFirstName () {return firstName; } public void setFirstName (String firstName) {this.firstName = firstName; } общедоступная строка getLastName () {return lastName; } public void setLastName (String lastName) {this.lastName = lastName; }}
См. Также
  • icon Портал компьютерного программирования
Ссылки
Внешние ссылки
На Wikimedia Commons есть материалы, связанные с Jakarta EE.
Последняя правка сделана 2021-05-24 12:20:34
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте