Курсы High Tech

Internet и Web-разработка

EJB 3.2, JPA 2.2 – технология разработки бизнес компонентов в Java EE8


Продолжительность: 40 ч    

Описание курса

В курсе "EJB 3.2, JPA 2.2 – технология разработки бизнес компонентов в Java EE8"основное внимание уделяется рассмотрению новой модели программирования бизнес-компонентов с применением новой спецификации Java Enterprise Edition 8, изучаются компоненты EJB 3.2, CDI 2.0, JPA 2.2, REST и SOAP web сервисы, работа с JSON: JSON-P, JSON-B, WebSocket 1.1, JMS 2.0, поддержка транзакций, безопасность Java EE приложений.

Также дается обзор модели безопасности Java EE8 и введение в асинхронные системы JMS и Message-Driven Beans. Большое количество примеров ориентирует внимание на практическое использование EJB при разработке корпоративных систем.

Курс рассчитан как на аудиторию, знакомую с основными принципами и моделью программирования Java Enterprise Edition, так и на начинающих изучение со спецификации Java EE8.

Перед прослушиванием этого курса рекомендуется изучить курсы:

Java Standard Edition 9 (Java SE9). Язык программирования Java, базовый курс или часть 1;
Java Standard Edition 7 (Java SE7). Язык программирования Java, курс для слушателей продолжающих изучение Java или часть 2

При изучении курса используются IDE IntelliJ IDEA и NetBeans.

Программа курса

1. Введение в EJB

Использование EJB, компонентный подход к разработке программного обеспечения.
Типы EJB.
Преимущества применения EJB.
Когда применять EJB?

2. Нововведения Java EE8, сервер GlassFish 5 и Payara, архитектура.

История спецификации EJB, от EJB 2.0/2.1 к EJB 3.0 и EJB 3.2.
Сервер приложений GlassFish 5.
Новое в Java EE7: обновление спецификаций EJB и JPA, JSON, WebSocket, Concurrency Utilities, Batch processing, JMS 2.0.
Новые спецификации Java EE8: Java EE Security API 1.0, JSON-B 1.0.
Новое в Java EE8: обновление спецификаций: JSF 2.3, CDI 2.0, JPA 2.2, Bean Validation 2.0, JSON-P 1.1, JAX-RS 2.1, WebSocket 1.1, Servlet 4.0.
Профили в спецификации Java EE8: Full profile и Web profile, EJB 3.2 Lite.
Нововведения EJB 3.2.
Бизнес-интерфейсы, Local и Remote.
CDI - внедрение зависимостей и JNDI.
Callback (обратные вызовы) методы и Interceptors (перехватчики) вызовов бизнес методов.
Упаковка, конфигурирование и размещение Enterprise приложений.

3. EJB 3.2 Session Beans

Модель Session Beans: бизнес интерфейс и класс Session Bean.
Соглашения об именовании, глобальное именование (Global JNDI names).
Асинхронный вызов, встроенные контейнеры.
Применение аннотаций для создания Session Beans.
Stateless Session Beans, создание, вызов, область применения.
Singleton Session Beans, создание, вызов, область применения.
Stateful Session Beans, их отличия, активация и пассивация, создание, вызов, область применения.
Встраиваемый API контейнера.
Лабораторная работа.

4. Цикл жизни EJB, Callback и Interceptors

Цикл жизни Stateless Session Beans и Singletons.
Цикл жизни Stateful Session Beans.
Callback методы для Session Beans.
Interceptors (перехватчики) вызовов бизнес методов.
Лабораторная работа.

5. Клиенты для Session Beans

Использование Enterprise Session Beans в клиентах.
Синтаксис поиска ссылки на Bean в JNDI.
Выбор между Local и Remote доступом.
Local и Remote клиенты.
Вызов EJB из другого EJB.

6. EJB 3.2 Timer service

API для создания и управления EJB таймерами.
Создание EJB Timer: программный и декларативный способ.
Примеры приложений.

7. Работа с XML и JSON

API для работы с JSON: JSON-P и JSON-B.
Связывание данных и XML, спецификация JAXB 2.2.

8. Web-сервисы в Java EE8, новый API WebSocket 1.1

RESTful web-сервисы по спецификации JAX-RS 2.1.
Java API for WebSocket 1.1.
Введение в Web-сервисы по спецификации JAX-WS 2.2.

9. Java Persistence API 2.2

Модель POJO Persistence.
Краткая история спецификации Java Persistence API, нововведения JPA 2.2.
Базовые концепции Java Persistence API, Entities.
Конфигурирование JPA, Persistence Unit, persistence.xml, генерация схемы БД.
Требования к Entity (классам сущностей), первичные ключи в классах сущностей.
Управление сущностями, Entity Manager API, Persistence Context.
Поиск по первичному ключу, осуществление доступа к сущностям.
Применение JPA-QL, именованные запросы, параметризованные запросы.
Хранимые процедуры.
Criteria Query API.
Валидация сущностей, Bean Validation.
Кэширование.
Жизненный цикл Entity, методы обратного вызова жизненного цикла, Entity Listeners.
Синхронизация с базой данных, прямое манипулирование данными сущностей.
Транзакции и блокировки, оптимистическое блокирование, явная блокировка на чтение и запись.
О механизме обнаружения конфликта транзакций.
Особенности BLOB and CLOB типов.

10. Наследование и реляционные отношения в JPA

Общие правила наследования Entities.
Управление наследованием - аннотации.
Стратегии наследования.
Типы отношений между Entities.
Однонаправленные и двунаправленные отношения.
Отношение типа "Один-к-Одному".
Отношение типа "Один-к-Многим" и "Многие-к-Одному".
Отношение "Многие-к-Многим".
Каскадирование операций.

11. Транзакции в Java EE

Необходимость использования транзакций, принцип ACID, локальные и распределенные (XA) транзакции.
Container-managed транзакции.
Bean-managed транзакции.
Client controlled транзакции.
Изоляция транзакций.

12. Безопасность в Java EE

Принципы обеспечения безопасности в Java EE.
Принципалы и роли, Authentication и Authorization.
Безопасность на уровне EJB - Declarative Security и Programmatic Security.
Безопасность на уровне клиента EJB.
Безопасность на уровне web сервисов.
Java EE Security API 1.0.

13. Message Driven Beans и система передачи сообщений JMS 2.0

Введение в JMS.
Обеспечение надежности JMS приложений.
Использование Message-Driven Beans (MDB) как клиента для JMS.
Основные свойства MDB.
Жизненный цикл MDB.
Пример написания Message-Driven bean.