Выбрать главу

Я также часто вспоминаю друга Бруно Реау, который покинул нас так рано.

Введение

В сегодняшнем мире бизнеса приложения должны осуществлять доступ к данным, реализовывать бизнес-логику, добавлять уровни представления данных, быть мобильными, использовать геолокацию и взаимодействовать с внешними системами и онлайн-сервисами. Именно этого пытаются достичь компании путем минимизации затрат и применения стандартных и надежных технологий, которые могут справляться с большими нагрузками. Если это ваш случай, данная книга — для вас.

Среда Java Enterprise Edition появилась в конце 1990-х годов и привнесла в язык Java надежную программную платформу для разработок корпоративного уровня. J2 EE, хоть и составляла конкуренцию фреймворкам с открытым кодом, считалась достаточно тяжеловесной технологией, была технически перенасыщенной, и каждая ее новая версия подвергалась критике, неправильно понималась или использовалась. Благодаря этой критике Java EE была усовершенствована и упрощена.

Если вы относитесь к числу людей, которые по-прежнему считают, что «архитектуры EJB — это зло», прочитайте эту книгу, и вы измените свое мнение. Архитектуры Enterprise Java Beans просто прекрасны, как и весь стек технологий Java EE 7. Если же вы, наоборот, адепт Java EE, то в книге вы увидите, как эта платформа обрела равновесие благодаря простоте разработки и несложной компонентной модели. Если вы начинающий пользователь Java EE, эта книга вам также подойдет: в ней очень понятно описываются наиболее важные спецификации, а также для наглядности приводится много примеров кода и схем.

Открытые стандарты являются в совокупности одной из наиболее сильных сторон Java EE. Теперь не составляет труда портировать прикладные программы между серверами приложений. Диапазон технологий, применяемых при написании этих программ, включает JPA, CDI, валидацию компонентов (Bean Validation), EJB, JSF, JMS, SOAP веб-службы либо веб-службы с передачей состояния представления (RESTful). Открытый исходный код — еще одна сильная сторона Java EE. Как вы увидите далее в книге, большинство базовых реализаций Java EE 7 (GlassFish, EclipseLink, Weld, Hibernate Validator, Mojarra, OpenMQ, Metro и Jersey) лицензируются как свободно распространяемое ПО.

Книга посвящена инновациям последней версии, различным спецификациям и способам их сочетания при разработке приложений. Java EE 7 включает около 30 спецификаций и является важным этапом разработок для корпоративного уровня (CDI 1.1, Bean Validation 1.1, EJB 3.2, JPA 2.1), для веб-уровня (Servlet 3.1, JSF 2.2, Expression Language 3.0) и для интероперабельности (JAX-WS 2.3 и JAX-RS 2.0). Издание охватывает большую часть спецификаций по Java EE 7 и использует инструментарий JDK 1.7 и некоторые известные шаблоны проектирования, а также сервер приложений GlassFish, базу данных Derby, библиотеку JUnit и фреймворк Maven. Издание изобилует UML-схемами, примерами Java-кода и скриншотами.

Структура книги

Книга посвящена наиболее важным спецификациям по Java EE 7 и новому функционалу этого релиза. Структура издания повторяет архитектурное выделение уровней в приложении.

В главе 1 приводятся основные понятия Java EE 7, которые далее обсуждаются в книге. Глава 2 посвящена контексту и внедрению зависимости (Context и Dependency Injection 1.1), а глава 3 — валидации компонентов (Bean Validation 1.1).

Главы 4–6 описывают уровень сохраняемости и подробно рассматривают интерфейс JPA 2.1. После краткого обзора и нескольких практических примеров в главе 4 глава 5 полностью посвящена объектно-реляционному отображению (атрибутам отображения, отношениям и наследованию), а глава 6 — тому, как вызывать сущности и управлять ими, их жизненному циклу, методам обратного вызова и слушателям.

Для разработки транзакций на уровне бизнес-логики на Java EE 7 может использоваться архитектура EJB. Главы 7–9 описывают этот процесс. После обзора спецификации и истории ее создания в главе 7 идет речь о компонент-сеансах EJB и модели их разработки. Глава 8 посвящена жизненному циклу архитектуры EJB, службе времени и способам обращения с авторизацией. Глава 9 объясняет понятие транзакций и то, каким образом интерфейс JTA переводит транзакции в EJB, а также в CDI-компоненты.

В главах 10 и 11 описано, как ведется разработка уровня представления данных с помощью фреймворка JSF 2.2. После обзора спецификации в главе 10 речь идет о разработке веб-страницы с помощью компонентов фреймворков JSF и Facelets. В главе 11 рассказывается о способах взаимодействия с серверной частью архитектуры EJB и поддерживающими CDI-компонентами, а также о навигации по страницам.