Подтвердить что ты не робот

Обзор всех спецификаций Java EE

Я ищу четкое описание всех стеков технологий Java EE.

Я думаю, что таких людей, как я, которые искали на многих сайтах/учебных пособиях, и не нашли точного списка, которые являются технологиями, используемыми в Java EE, и для чего они хороши.

Я надеюсь, что кто-то прояснит простую и красивую ситуацию, чтобы быть хорошим для всего сообщества.

4b9b3361

Ответ 1

Важно: В то время как этот ответ остается в силе, вы можете проверить список Технология Java EE 8, выпущенный в сентябре 21 - го 2017. Взгляните на этот ответ.


Технологии Java EE 7

Ниже вы найдете список спецификаций для технологий Java EE 7. Для более подробной информации, проверьте страницы JSR:

  • Платформа Java EE

    • JSR 342: платформа Java, выпуск Enterprise Edition 7 (Java EE 7)
  • Технологии веб-приложений

    • JSR 356: Java API для WebSocket
    • JSR 353: Java API для обработки JSON
    • JSR 340: Java-сервлет 3.1
    • JSR 344: JavaServer Faces 2.2
    • JSR 341: язык выражений 3.0
    • JSR 245: JavaServer Pages 2.3
    • JSR 52: Стандартная библиотека тегов для страниц JavaServer (JSTL) 1.2
  • Корпоративные прикладные технологии

    • JSR 352: пакетные приложения для платформы Java
    • JSR 236: утилиты параллелизма для Java EE 1.0
    • JSR 346: контексты и внедрение зависимостей для Java 1.1
    • JSR 330: внедрение зависимостей для Java 1.0
    • JSR 349: проверка бина 1.1
    • JSR 345: Enterprise JavaBeans 3.2
    • JSR 318: перехватчики 1.2
    • JSR 322: архитектура коннектора Java EE 1.7
    • JSR 338: постоянство Java 2.1
    • JSR 250: общие аннотации для платформы Java 1.2
    • JSR 343: API службы сообщений Java 2.0
    • JSR 907: API транзакций Java (JTA) 1.2
    • JSR 919: JavaMail 1.5
  • Технологии веб-сервисов

    • JSR 339: API Java для веб-служб RESTful (JAX-RS) 2.0
    • JSR 109: реализация корпоративных веб-сервисов 1.3
    • JSR 224: Java API для веб-служб на основе XML (JAX-WS) 2.2
    • JSR 181: метаданные веб-служб для платформы Java
    • JSR 101: Java API для RPC на основе XML (JAX-RPC) 1.1
    • JSR 67: API Java для обмена сообщениями XML 1.3
    • JSR 93: API Java для реестров XML (JAXR) 1.0
  • Технологии управления и безопасности

    • JSR 196: интерфейс поставщика услуг аутентификации Java для контейнеров 1.1
    • JSR 115: контракт авторизации Java для контейнеров 1.5
    • JSR 88: Развертывание приложений Java EE 1.2 (необязательно)
    • JSR 77: J2EE Management 1.1
    • JSR 45: отладка поддержки других языков 1.0
  • Спецификации, связанные с Java EE в Java SE

    • JSR 222: архитектура Java для привязки XML (JAXB) 2.2
    • JSR 206: Java API для обработки XML (JAXP) 1.3
    • JSR 221: Java Database Connectivity 4.0
    • JSR 3: Java Management Extensions (JMX) 2.0
    • JSR 925: среда активации JavaBeans (JAF) 1.1
    • JSR 173: потоковый API для XML (StAX) 1.0

Для более подробной информации, обратитесь к этой странице.

Стек Java EE

Как упомянул Арун Гупта в своей книге под названием Java EE 7 Essentials, различные компоненты работают вместе, чтобы обеспечить интегрированный стек, как показано ниже:

The Java EE stack

Итак, имеем следующее:

  • Различные компоненты могут быть логически разделены на три уровня: внутренний уровень, средний уровень и веб-уровень. Это только логическое представление, и компоненты могут быть ограничены другим уровнем в зависимости от требований приложения.

  • JPA и JMS предоставляют базовые услуги, такие как доступ к базе данных и обмен сообщениями. JCA позволяет подключаться к устаревшим системам. Пакет используется для выполнения неинтерактивных, ориентированных на объем задач.

  • Managed Beans и EJB предоставляют упрощенную модель программирования с использованием POJO для использования базовых сервисов.

  • CDI, Interceptors и Common Annotations предоставляют концепции, которые применимы к широкому кругу компонентов, таких как безопасное внедрение зависимостей, решение межсекторальных проблем с использованием перехватчиков и общий набор аннотаций. Утилиты параллелизма могут использоваться для запуска задач в управляемом потоке. JTA включает транзакционные перехватчики, которые могут быть применены к любому POJO.

  • Расширения CDI позволяют стандартным образом расширить платформу за пределы ее существующих возможностей.

  • Веб-службы, использующие JAX-RS и JAX-WS, JSF, JSP и EL, определяют модель программирования для веб-приложений. Веб-фрагменты позволяют автоматически регистрировать сторонние веб-фреймворки очень естественным образом. JSON предоставляет способ анализа и генерации структур JSON на веб-уровне. WebSocket позволяет настроить двунаправленный полнодуплексный канал связи по одному TCP-соединению.

  • Bean Validation предоставляет стандартные средства для объявления ограничений и их проверки в различных технологиях.

Брифинг по каждой технологии

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

Enterprise JavaBeans Technology

Компонент Enterprise JavaBeans (EJB), или корпоративный компонент, представляет собой совокупность кода, содержащего поля и методы для реализации модулей бизнес-логики. Вы можете представить корпоративный компонент как строительный блок, который можно использовать отдельно или вместе с другими корпоративными компонентами для выполнения бизнес-логики на сервере Java EE.

Корпоративные компоненты - это сессионные компоненты или компоненты, управляемые сообщениями.

  • Сессионный компонент представляет собой временный диалог с клиентом. Когда клиент завершает выполнение, сессионный компонент и его данные исчезают.

  • Компонент, управляемый сообщениями, сочетает в себе функции сессионного компонента и приемника сообщений, что позволяет бизнес-компоненту получать сообщения асинхронно. Обычно это сообщения службы сообщений Java (JMS).

В платформе Java EE 7 новые функции корпоративного компонента включают следующее:

  • Асинхронные локальные сессионные компоненты в EJB Lite

  • Непостоянные таймеры в EJB Lite

Платформа Java EE 7 требует Enterprise JavaBeans 3.2 и Interceptors 1.2. Спецификация Interceptors является частью спецификации EJB.

Технология Java Servlet

Технология Java Servlet позволяет вам определять специфичные для HTTP классы сервлетов. Класс сервлета расширяет возможности серверов, на которых размещаются приложения, доступ к которым осуществляется посредством модели программирования запрос-ответ. Хотя сервлеты могут отвечать на любые запросы, они обычно используются для расширения приложений, размещаемых на веб-серверах.

В платформе Java EE 7 новые функции технологии Java Servlet включают следующее:

  • Неблокирующий ввод/вывод

  • Обновление протокола HTTP

Платформа Java EE 7 требует Servlet 3.1.

Технология JavaServer Faces

Технология JavaServer Faces - это структура пользовательского интерфейса для создания веб-приложений. Основными компонентами технологии JavaServer Faces являются:

  • Каркас компонента с графическим интерфейсом.

  • Гибкая модель для рендеринга компонентов в различных видах HTML или на разных языках и технологиях разметки. Объект Renderer генерирует разметку для визуализации компонента и преобразует данные, хранящиеся в объекте модели, в типы, которые могут быть представлены в виде.

  • Стандартный RenderKit для создания разметки HTML 4.01.

Следующие функции поддерживают компоненты GUI:

  • Подтверждение ввода

  • Обработка событий

  • Преобразование данных между объектами модели и компонентами

  • Создание объекта управляемой модели

  • Конфигурация навигации по страницам

  • Язык выражений (EL)

Все эти функции доступны с использованием стандартных API-интерфейсов Java и файлов конфигурации на основе XML.

В платформе Java EE 7 новые функции технологии JavaServer Faces включают следующее:

  • HTML5-дружественная разметка

  • Лица потоков

  • Контракты библиотеки ресурсов

Платформа Java EE 7 требует JavaServer Faces 2.2 и Expression Language 3.0.

Технология JavaServer Pages

Технология JavaServer Pages (JSP) позволяет помещать фрагменты кода сервлета непосредственно в текстовый документ. Страница JSP - это текстовый документ, который содержит два типа текста:

  • Статические данные, которые могут быть выражены в любом текстовом формате, таком как HTML или XML

  • Элементы JSP, которые определяют, как страница создает динамический контент

Для получения информации о технологии JSP см. Учебное пособие по Java EE 5 по адресу http://docs.oracle.com/javaee/5/tutorial/doc/.

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

Стандартная библиотека тегов JavaServer Pages

Стандартная библиотека тегов JavaServer Pages (JSTL) включает основные функциональные возможности, общие для многих приложений JSP. Вместо того, чтобы смешивать теги от многочисленных поставщиков в ваших приложениях JSP, вы используете один стандартный набор тегов. Эта стандартизация позволяет вам развертывать приложения в любом контейнере JSP, который поддерживает JSTL, и повышает вероятность оптимизации реализации тегов.

В JSTL есть итератор и условные теги для управления потоком, теги для управления XML-документами, теги интернационализации, теги для доступа к базам данных с использованием SQL и теги для часто используемых функций.

Платформа Java EE 7 требует JSTL 1.2.

API персистентности Java

Java Persistence API (JPA) - это основанное на стандартах Java решение для персистентности. Постоянство использует подход объектно-реляционного отображения для преодоления разрыва между объектно-ориентированной моделью и реляционной базой данных. Java Persistence API также можно использовать в приложениях Java SE вне среды Java EE. Java Persistence состоит из следующих областей:

  • API персистентности Java

  • Язык запросов

  • Метаданные объектного/реляционного отображения

Платформа Java EE 7 требует Java Persistence API 2.1.

API транзакций Java

Java Transaction API (JTA) предоставляет стандартный интерфейс для разграничения транзакций. Архитектура Java EE обеспечивает автоматическое принятие по умолчанию для обработки фиксации транзакций и отката транзакций. Автоматическая фиксация означает, что любые другие приложения, которые просматривают данные, будут видеть обновленные данные после каждой операции чтения или записи в базу данных. Однако, если ваше приложение выполняет две отдельные операции доступа к базе данных, которые зависят друг от друга, вы захотите использовать JTA API, чтобы определить, где вся транзакция, включая обе операции, начинается, откатывается и фиксируется.

Платформа Java EE 7 требует Java Transaction API 1.2.

Java API для веб-сервисов RESTful

Java API для веб-служб RESTful (JAX-RS) определяет API-интерфейсы для разработки веб-служб, построенных в соответствии с архитектурным стилем передачи представительного состояния (REST). Приложение JAX-RS - это веб-приложение, которое состоит из классов, упакованных в виде сервлета в файл WAR вместе с необходимыми библиотеками.

Платформа Java EE 7 требует JAX-RS 2.0.

Управляемые бобы

Управляемые компоненты, легкие управляемые контейнерами объекты (POJO) с минимальными требованиями поддерживают небольшой набор базовых служб, таких как внедрение ресурсов, обратные вызовы жизненного цикла и перехватчики. Управляемые компоненты представляют собой обобщение управляемых компонентов, определяемых технологией JavaServer Faces, и могут использоваться в любом месте приложения Java EE, а не только в веб-модулях.

Спецификация Managed Beans является частью спецификации платформы Java EE 7 (JSR 342). Платформа Java EE 7 требует Managed Beans 1.0.

Контексты и внедрение зависимостей для Java EE

Внедрение контекстов и зависимостей для Java EE (CDI) определяет набор контекстных сервисов, предоставляемых контейнерами Java EE, которые позволяют разработчикам легко использовать корпоративные компоненты вместе с технологией JavaServer Faces в веб-приложениях. Разработанный для использования с объектами с состоянием, CDI также имеет много более широкого использования, что дает разработчикам большую гибкость для интеграции различных типов компонентов в слабосвязанных, но безопасных для типов способах.

Платформа Java EE 7 требует CDI 1.1.

Внедрение зависимостей для Java

Внедрение зависимостей для Java определяет стандартный набор аннотаций (и один интерфейс) для использования в инъецируемых классах.

На платформе Java EE CDI обеспечивает поддержку внедрения зависимостей. В частности, вы можете использовать точки инъекции только в приложении с поддержкой CDI.

Платформа Java EE 7 требует внедрения зависимостей для Java 1.0.

Проверка бобов

Спецификация Bean Validation определяет модель метаданных и API для проверки данных в компонентах JavaBeans. Вместо того, чтобы распределять проверку данных по нескольким слоям, таким как браузер и серверная часть, вы можете определить ограничения проверки в одном месте и разделить их между различными уровнями.

Платформа Java EE 7 требует Bean Validation 1.1.

API службы сообщений Java

API службы сообщений Java (JMS) - это стандарт обмена сообщениями, который позволяет компонентам приложения Java EE создавать, отправлять, получать и читать сообщения. Это обеспечивает распределенную связь, которая слабо связана, надежна и асинхронна.

В платформе новые функции JMS включают следующее.

  • Новый упрощенный API предлагает более простую альтернативу предыдущему API. Этот API включает в JMSContext объект JMSContext который сочетает в себе функции соединения и Session.

  • Все объекты с методом close реализуют интерфейс java.lang.Autocloseable чтобы их можно было использовать в операторе try-with-resources Java SE 7.

Платформа Java EE 7 требует JMS 2.0.

Архитектура коннектора Java EE

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

Архитектура коннектора Java EE также обеспечивает ориентированную на производительность, безопасную, масштабируемую и основанную на сообщениях транзакционную интеграцию веб-сервисов на основе платформы Java EE с существующими EIS, которые могут быть либо синхронными, либо асинхронными. Существующие приложения и EIS, интегрированные через архитектуру коннектора Java EE в платформу Java EE, могут быть представлены как веб-сервисы на основе XML с использованием компонентных моделей JAX-WS и Java EE. Таким образом, JAX-WS и Java EE Connector Architecture являются взаимодополняющими технологиями для интеграции корпоративных приложений (EAI) и сквозной бизнес-интеграции.

Платформа Java EE 7 требует архитектуры коннектора Java EE 1.7.

JavaMail API

Приложения Java EE используют JavaMail API для отправки уведомлений по электронной почте. JavaMail API состоит из двух частей:

  • Интерфейс уровня приложения, используемый компонентами приложения для отправки почты

  • Интерфейс поставщика услуг

Платформа Java EE включает API JavaMail с поставщиком услуг, который позволяет компонентам приложения отправлять почту через Интернет.

Платформа Java EE 7 требует JavaMail 1.5.

Контракт авторизации Java для контейнеров

Спецификация Контракта авторизации Java для контейнеров (JACC) определяет контракт между сервером приложений Java EE и поставщиком политики авторизации. Все контейнеры Java EE поддерживают этот контракт.

Спецификация JACC определяет классы java.security.Permission которые удовлетворяют модели авторизации Java EE. Спецификация определяет привязку решений о доступе к контейнерам к операциям с экземплярами этих классов разрешений. Он определяет семантику поставщиков политики, которые используют новые классы разрешений для удовлетворения требований авторизации платформы Java EE, включая определение и использование ролей.

Платформа Java EE 7 требует JACC 1.5.

Интерфейс поставщика услуг аутентификации Java для контейнеров

Спецификация интерфейса поставщика услуг аутентификации Java для контейнеров (JASPIC) определяет интерфейс поставщика услуг (SPI), с помощью которого поставщики аутентификации, которые реализуют механизмы аутентификации сообщений, могут быть интегрированы в контейнеры или среды выполнения сообщений клиента или сервера. Поставщики аутентификации, интегрированные через этот интерфейс, работают с сетевыми сообщениями, которые им передают вызывающие контейнеры. Поставщики аутентификации преобразуют исходящие сообщения, так что источник каждого сообщения может быть аутентифицирован получающим контейнером, а получатель сообщения может быть аутентифицирован отправителем сообщения. Поставщики аутентификации аутентифицируют каждое входящее сообщение и возвращают своим вызывающим контейнерам идентичность, установленную в результате аутентификации сообщения.

Платформа Java EE 7 требует JASPIC 1.1.

Java API для WebSocket

WebSocket - это прикладной протокол, который обеспечивает полнодуплексную связь между двумя узлами по TCP. Java API для WebSocket позволяет приложениям Java EE создавать конечные точки с помощью аннотаций, которые задают параметры конфигурации конечной точки и обозначают методы обратного вызова жизненного цикла.

API WebSocket является новым для платформы Java EE 7. Платформа Java EE 7 требует Java API для WebSocket 1.0.

Java API для обработки JSON

JSON - это текстовый формат обмена данными, полученный из JavaScript, который используется в веб-сервисах и других связанных приложениях. Java API для обработки JSON (JSON-P) позволяет приложениям Java EE анализировать, преобразовывать и запрашивать данные JSON, используя объектную модель или потоковую модель.

JSON-P является новым для платформы Java EE 7. Платформа Java EE 7 требует JSON-P 1.0.

Утилиты параллелизма для Java EE

Утилиты параллелизма для Java EE - это стандартный API-интерфейс для предоставления асинхронных возможностей компонентам приложения Java EE с помощью следующих типов объектов: служба управляемого исполнителя, служба управляемого запланированного исполнителя, фабрика управляемых потоков и служба контекста.

Утилиты параллелизма для Java EE - новинка для платформы Java EE 7. Платформе Java EE 7 требуются утилиты параллелизма для Java EE 1.0.

Пакетные приложения для платформы Java

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

Пакетные приложения для платформы Java являются новыми для платформы Java EE 7. Платформе Java EE 7 требуются пакетные приложения для платформы Java 1.0.

Смотрите также

Чтобы проверить технологии старых версий Java EE, взгляните на следующие ссылки:

Ответ 2

Технологии Java EE 8

Java EE 8 основывается на Java EE 7 (подробности см. В предыдущем ответе) и модернизирует поддержку многих отраслевых стандартов и продолжает упрощать готовые к использованию API-интерфейсы.

Улучшения включают в себя:

  • API Java Servlet 4.0 с поддержкой HTTP/2
  • Расширенная поддержка JSON, включая новый API связывания JSON
  • Новый REST Reactive Client API
  • Асинхронные события CDI
  • Новый портативный API безопасности
  • Поддержка событий, отправляемых сервером (на стороне клиента и сервера)
  • Поддержка новых возможностей Java SE 8 (например, API данных и времени, API потоков, улучшений аннотаций)

Следующие JSR являются новыми или обновленными в Java EE 8:

  • Платформа Java EE

    • JSR 366: платформа Java EE 8
  • Технологии веб-приложений

    • JSR 367: API Java для привязки JSON (JSON-B) 1.0
    • JSR 374: Java API для обработки JSON (JSON-P) 1.1
    • JSR 369: сервлет Java 4.0
    • JSR 372: JavaServer Faces (JSF) 2.3
  • Корпоративные прикладные технологии

    • JSR 365: контексты и внедрение зависимостей (CDI) 2.0
    • JSR 380: проверка бина 2.0
    • JSR 338: постоянство Java 2.2
    • JSR 250: общие аннотации 1.3
    • JSR 919: JavaMail 1.6
  • Технологии веб-сервисов

    • JSR 370: API Java для веб-служб RESTful (JAX-RS) 2.1
  • Технологии управления и безопасности

    • JSR 375: API безопасности Java EE 1.0

Для более подробной информации, обратитесь к этой странице.

Брифинг по каждой технологии

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

Enterprise JavaBeans Technology

Компонент Enterprise JavaBeans (EJB), или корпоративный компонент, представляет собой совокупность кода, содержащего поля и методы для реализации модулей бизнес-логики. Вы можете представить корпоративный компонент как строительный блок, который можно использовать отдельно или вместе с другими корпоративными компонентами для выполнения бизнес-логики на сервере Java EE.

Корпоративные компоненты - это сессионные компоненты или компоненты, управляемые сообщениями.

  • Сессионный компонент представляет собой временный диалог с клиентом. Когда клиент завершает выполнение, сессионный компонент и его данные исчезают.
  • Компонент, управляемый сообщениями, сочетает в себе функции сессионного компонента и приемника сообщений, что позволяет бизнес-компоненту получать сообщения асинхронно. Обычно это сообщения службы сообщений Java (JMS).

Платформа Java EE 8 требует Enterprise JavaBeans 3.2 и Interceptors 1.2. Спецификация Interceptors является частью спецификации EJB.

Технология Java Servlet

Технология Java Servlet позволяет вам определять специфичные для HTTP классы сервлетов. Класс сервлета расширяет возможности серверов, на которых размещаются приложения, доступ к которым осуществляется посредством модели программирования запрос-ответ. Хотя сервлеты могут отвечать на любые запросы, они обычно используются для расширения приложений, размещаемых на веб-серверах.

В платформе Java EE 8 новые функции технологии Java Servlet включают следующее:

  • Сервер Push
  • HTTP трейлер

Платформа Java EE 8 требует Servlet 4.0

Технология JavaServer Faces

Технология JavaServer Faces - это структура пользовательского интерфейса для создания веб-приложений. Основными компонентами технологии JavaServer Faces являются:

  • Каркас компонента с графическим интерфейсом.
  • Гибкая модель для рендеринга компонентов в различных видах HTML или на разных языках и технологиях разметки. Объект Renderer генерирует разметку для визуализации компонента и преобразует данные, хранящиеся в объекте модели, в типы, которые могут быть представлены в виде.
  • Стандартный RenderKit для создания разметки HTML 4.01.

Следующие функции поддерживают компоненты GUI:

  • Подтверждение ввода
  • Обработка событий
  • Преобразование данных между объектами модели и компонентами
  • Создание объекта управляемой модели
  • Конфигурация навигации по страницам
  • Язык выражений (EL)

Все эти функции доступны с использованием стандартных API-интерфейсов Java и файлов конфигурации на основе XML.

В платформе Java EE 8 новые функции технологии JavaServer Faces включают следующее:

  • Прямая поддержка WebSockets с помощью нового <f:websocket>
  • Проверка бина на уровне класса с помощью нового <f:validateWholeBean>
  • CDI-совместимая аннотация @ManagedProperty
  • Усовершенствованная структура выражений поиска компонентов

Платформа Java EE 8 требует JavaServer Faces 2.3 и Expression Language 3.0.

Отличное резюме того, что нового в JSF 2.3, см. По адресу https://javaserverfaces.github.io/whats-new-in-jsf23.html.

Технология JavaServer Pages

Технология JavaServer Pages (JSP) позволяет помещать фрагменты кода сервлета непосредственно в текстовый документ. Страница JSP - это текстовый документ, который содержит два типа текста:

  • Статические данные, которые могут быть выражены в любом текстовом формате, таком как HTML или XML
  • Элементы JSP, которые определяют, как страница создает динамический контент

Для получения информации о технологии JSP см. Учебное пособие по Java EE 5 по адресу http://docs.oracle.com/javaee/5/tutorial/doc/.

Платформе Java EE 8 требуется JavaServer Pages 2.3 для совместимости с более ранними выпусками, но рекомендуется использовать Facelets в качестве технологии отображения в новых приложениях.

Стандартная библиотека тегов JavaServer Pages

Стандартная библиотека тегов JavaServer Pages (JSTL) включает основные функциональные возможности, общие для многих приложений JSP. Вместо того, чтобы смешивать теги от многочисленных поставщиков в ваших приложениях JSP, вы используете один стандартный набор тегов. Эта стандартизация позволяет вам развертывать приложения в любом контейнере JSP, который поддерживает JSTL, и повышает вероятность оптимизации реализации тегов.

В JSTL есть итератор и условные теги для управления потоком, теги для управления XML-документами, теги интернационализации, теги для доступа к базам данных с использованием SQL и теги для часто используемых функций.

Платформа Java EE 8 требует JSTL 1.2.

API персистентности Java

Java Persistence API (JPA) - это основанное на стандартах Java решение для персистентности. Постоянство использует подход объектно-реляционного отображения для преодоления разрыва между объектно-ориентированной моделью и реляционной базой данных. Java Persistence API также можно использовать в приложениях Java SE вне среды Java EE. Java Persistence состоит из следующих областей:

  • API персистентности Java
  • Язык запросов
  • Метаданные объектного/реляционного отображения

Платформа Java EE 8 требует Java Persistence API 2.2.

API транзакций Java

Java Transaction API (JTA) предоставляет стандартный интерфейс для разграничения транзакций. Архитектура Java EE обеспечивает автоматическое принятие по умолчанию для обработки фиксации транзакций и отката транзакций. Автоматическая фиксация означает, что любые другие приложения, которые просматривают данные, будут видеть обновленные данные после каждой операции чтения или записи в базу данных. Однако, если ваше приложение выполняет две отдельные операции доступа к базе данных, которые зависят друг от друга, вы захотите использовать JTA API, чтобы определить, где вся транзакция, включая обе операции, начинается, откатывается и фиксируется.

Платформа Java EE 8 требует Java Transaction API 1.2.

Java API для веб-сервисов RESTful

Java API для веб-служб RESTful (JAX-RS) определяет API-интерфейсы для разработки веб-служб, построенных в соответствии с архитектурным стилем передачи представительного состояния (REST). Приложение JAX-RS - это веб-приложение, которое состоит из классов, упакованных в виде сервлета в файл WAR вместе с необходимыми библиотеками.

В платформе Java EE 8 новые функции веб-служб RESTful включают следующее:

  • Реактивный клиентский API. Когда получены результаты вызова целевого ресурса, усовершенствования API этапа завершения в Java SE позволяют задавать последовательность этих результатов, определять их приоритеты, объединять или объединять, а также способы обработки исключений.
  • Усовершенствования в поддержке отправляемых сервером событий. Клиенты могут подписываться на отправляемые сервером уведомления о событиях, используя длительное соединение. Добавлена поддержка нового типа мультимедиа, text/event-stream.
  • Поддержка объектов JSON-B и улучшенная интеграция с технологиями CDI, Servlet и Bean Validation

Платформа Java EE 8 требует JAX-RS 2.1.

Управляемые бобы

Управляемые компоненты, легкие управляемые контейнерами объекты (POJO) с минимальными требованиями поддерживают небольшой набор базовых служб, таких как внедрение ресурсов, обратные вызовы жизненного цикла и перехватчики. Управляемые компоненты представляют собой обобщение управляемых компонентов, определяемых технологией JavaServer Faces, и могут использоваться в любом месте приложения Java EE, а не только в веб-модулях.

Спецификация Managed Beans является частью спецификации платформы Java EE 8 (JSR 366). Платформа Java EE 8 требует Managed Beans 1.0.

Контексты и внедрение зависимостей для Java EE

Внедрение контекстов и зависимостей для Java EE (CDI) определяет набор контекстных сервисов, предоставляемых контейнерами Java EE, которые позволяют разработчикам легко использовать корпоративные компоненты вместе с технологией JavaServer Faces в веб-приложениях. Разработанный для использования с объектами с состоянием, CDI также имеет много более широкого использования, что дает разработчикам большую гибкость для интеграции различных типов компонентов в слабосвязанных, но безопасных для типов способах.

В платформе Java EE 8 новые функции CDI включают следующее:

  • API для начальной загрузки контейнера CDI в Java SE 8
  • Поддержка порядка наблюдателя, который определяет порядок, в котором вызываются методы наблюдателя для определенного события, и поддержка запуска событий асинхронно
  • Интерфейсы конфигураторов, которые используются для динамического определения и изменения объектов CDI
  • Встроенные литералы аннотаций, удобная функция для создания экземпляров аннотаций и многое другое

Платформа Java EE 8 требует CDI 2.0.

Внедрение зависимостей для Java

Внедрение зависимостей для Java определяет стандартный набор аннотаций (и один интерфейс) для использования в инъецируемых классах.

На платформе Java EE CDI обеспечивает поддержку внедрения зависимостей. В частности, вы можете использовать точки инъекции только в приложении с поддержкой CDI.

Платформа Java EE 8 требует внедрения зависимостей для Java 1.0.

Проверка бобов

Спецификация Bean Validation определяет модель метаданных и API для проверки данных в компонентах JavaBeans. Вместо того, чтобы распределять проверку данных по нескольким слоям, таким как браузер и серверная часть, вы можете определить ограничения проверки в одном месте и разделить их между различными уровнями.

В платформе Java EE 8 новые функции проверки компонентов включают в себя следующее:

  • Поддержка новых функций в Java SE 8, таких как API Date-Time
  • Добавление новых встроенных ограничений Bean Validation

Платформа Java EE 8 требует Bean Validation 2.0.

API службы сообщений Java

API службы сообщений Java (JMS) - это стандарт обмена сообщениями, который позволяет компонентам приложения Java EE создавать, отправлять, получать и читать сообщения. Это обеспечивает распределенную связь, которая слабо связана, надежна и асинхронна.

Платформа Java EE 8 требует JMS 2.0.

Архитектура коннектора Java EE

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

Архитектура коннектора Java EE также обеспечивает ориентированную на производительность, безопасную, масштабируемую и основанную на сообщениях транзакционную интеграцию веб-сервисов на основе платформы Java EE с существующими EIS, которые могут быть либо синхронными, либо асинхронными. Существующие приложения и EIS, интегрированные через архитектуру коннектора Java EE в платформу Java EE, могут быть представлены как веб-сервисы на основе XML с использованием компонентных моделей JAX-WS и Java EE. Таким образом, JAX-WS и Java EE Connector Architecture являются взаимодополняющими технологиями для интеграции корпоративных приложений (EAI) и сквозной бизнес-интеграции.

Платформа Java EE 8 требует архитектуры коннектора Java EE 1.7.

JavaMail API

Приложения Java EE используют JavaMail API для отправки уведомлений по электронной почте. JavaMail API состоит из двух частей:

  • Интерфейс уровня приложения, используемый компонентами приложения для отправки почты
  • Интерфейс поставщика услуг

Платформа Java EE включает API JavaMail с поставщиком услуг, который позволяет компонентам приложения отправлять почту через Интернет.

Платформа Java EE 8 требует JavaMail 1.6.

Контракт авторизации Java для контейнеров

Спецификация Контракта авторизации Java для контейнеров (JACC) определяет контракт между сервером приложений Java EE и поставщиком политики авторизации. Все контейнеры Java EE поддерживают этот контракт.

Спецификация JACC определяет классы java.security.Permission, которые удовлетворяют модели авторизации Java EE. Спецификация определяет привязку решений о доступе к контейнерам к операциям с экземплярами этих классов разрешений. Он определяет семантику поставщиков политики, которые используют новые классы разрешений для удовлетворения требований авторизации платформы Java EE, включая определение и использование ролей.

Платформа Java EE 8 требует JACC 1.5.

Интерфейс поставщика услуг аутентификации Java для контейнеров

Спецификация интерфейса поставщика услуг аутентификации Java для контейнеров (JASPIC) определяет интерфейс поставщика услуг (SPI), с помощью которого поставщики аутентификации, которые реализуют механизмы аутентификации сообщений, могут быть интегрированы в контейнеры или среды выполнения сообщений клиента или сервера. Поставщики аутентификации, интегрированные через этот интерфейс, работают с сетевыми сообщениями, которые им передают вызывающие контейнеры. Поставщики аутентификации преобразуют исходящие сообщения, так что источник каждого сообщения может быть аутентифицирован получающим контейнером, а получатель сообщения может быть аутентифицирован отправителем сообщения. Поставщики аутентификации аутентифицируют каждое входящее сообщение и возвращают своим вызывающим контейнерам идентичность, установленную в результате аутентификации сообщения.

Платформа Java EE 8 требует JASPIC 1.1.

API безопасности Java EE

Цель спецификации API безопасности Java EE - модернизировать и упростить API безопасности, одновременно устанавливая общие подходы и механизмы и удаляя, по возможности, более сложные API из представления разработчика. Java EE Security представляет следующие API:

  • Интерфейс SecurityContext: предоставляет общую унифицированную точку доступа, которая позволяет приложению тестировать аспекты данных вызывающего абонента и предоставлять или запрещать доступ к ресурсам.
  • Интерфейс HttpAuthenticationMechanism: HttpAuthenticationMechanism подлинность абонентов веб-приложения и указывается только для использования в контейнере сервлета.
  • Интерфейс IdentityStore. Предоставляет абстракцию хранилища идентификаторов, которое можно использовать для аутентификации пользователей и получения групп абонентов.

Платформа Java EE 8 требует API безопасности Java EE 1.0.

Java API для WebSocket

WebSocket - это прикладной протокол, который обеспечивает полнодуплексную связь между двумя узлами по TCP. Java API для WebSocket позволяет приложениям Java EE создавать конечные точки с помощью аннотаций, которые задают параметры конфигурации конечной точки и обозначают методы обратного вызова жизненного цикла.

Платформа Java EE 8 требует Java API для WebSocket 1.1.

Java API для обработки JSON

JavaScript Object Notation (JSON) - это текстовый формат обмена данными, полученный из JavaScript, который используется в веб-сервисах и других связанных приложениях. Java API для обработки JSON (JSON-P) позволяет приложениям Java EE анализировать, преобразовывать и запрашивать данные JSON, используя объектную модель или потоковую модель.

В платформе Java EE 8 новые функции JSON-P включают поддержку следующего:

  • Указатель JSON: определяет строковый синтаксис для ссылки на определенное значение в документе JSON. JSON Pointer включает в себя API для извлечения значений из целевого документа и преобразования их для создания нового документа JSON.
  • Патч JSON: Определяет формат для выражения последовательности операций, которые будут применены к документу JSON.
  • JSON Merge Patch: Определяет формат и правила обработки для применения операций к документу JSON на основе конкретного содержимого целевого документа.

  • Добавление функций редактирования и преобразования в базовую обработку документов JSON.

  • Вспомогательные классы и методы, называемые JSON Collectors, которые используют возможности Stream API, который был представлен в Java SE 8.

Платформа Java EE 8 требует JSON-P 1.1.

Java API для связывания JSON

Java API для привязки JSON (JSON-B) обеспечивает уровень привязки для преобразования объектов Java в сообщения JSON и из них. JSON-B также поддерживает возможность настройки процесса отображения по умолчанию, используемого на этом уровне привязки, путем использования аннотаций Java для данного поля, свойства JavaBean, типа или пакета или путем реализации стратегии именования свойств.

JSON-B является новым для платформы Java EE 8. Платформа Java EE 8 требует JSON-B 1.0.

Утилиты параллелизма для Java EE

Утилиты параллелизма для Java EE - это стандартный API-интерфейс для предоставления асинхронных возможностей компонентам приложения Java EE с помощью следующих типов объектов: служба управляемого исполнителя, служба управляемого запланированного исполнителя, фабрика управляемых потоков и служба контекста.

Платформе Java EE 8 требуются утилиты параллелизма для Java EE 1.0.

Пакетные приложения для платформы Java

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

Платформе Java EE 8 требуются пакетные приложения для платформы Java 1.0.