Изучаем Java EE 7 - Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP). В ней вы найдете максимально ценную информацию, изложенную с точки зрения эксперта по технологиям Java для предприятий.
Название: Изучаем Java EE 7 Автор: Энтони Гонсалвес Издательство: Питер Год: 2014 Страниц: 640 Формат: PDF Размер: 10,0 МБ ISBN: 978-5-496-00942-3 Качество: отличное Язык: русский
Содержание:
Предисловие Об авторе О техническом редакторе Благодарности Введение Структура книги Скачивание и запуск кода Связь с автором От издательства Глава 1. Краткий обзор Java EE Понимание Java EE Архитектура Компоненты Контейнеры Сервисы Сетевые протоколы Упаковка Аннотации и дескрипторы развертывания Стандарты JCP Портируемость Модель программирования Java Standard Edition Строковый оператор Ромбовидная нотация Конструкция try-with-resources Multicatch-исключения NIO Обзор спецификаций Java EE Краткая история Java EE Отсечение Спецификации Java EE Спецификации веб-профиля Приложение CD-BookStore Резюме Глава 2. Контекст и внедрение зависимостей Понятие компонентов Внедрение зависимостей Управление жизненным циклом Области видимости и контекст Перехват Слабая связанность и строгая типизация Дескриптор развертывания Обзор спецификаций по CDI Краткая история спецификаций CDI 1.1 Что нового в CDI Базовая реализация Создание компонента CDI Внутренняя организация компонента CDI Внедрение зависимостей Альтернативы Производители данных Утилизаторы Области видимости Компоненты в языке выражений Перехватчики Перехватчики целевого класса Перехватчики классов Перехватчик жизненного цикла Связывание и исключение перехватчиков Связывание с перехватчиком Приоритизация связывания перехватчиков Декораторы События Все вместе Написание классов Book и BookService Написание классов NumberGenerator Написание квалификаторов Написание автоматического журнала Написание класса Main Приведение в действие CDI с beans.xml Компиляция и выполнение с помощью Maven Запуск класса Main Написание класса BookServiceIT Активизация альтернатив и перехватчиков в файлах beans.xml для интеграционного тестирования Запуск интеграционного теста Резюме Глава 3. Валидация компонентов Понятие об ограничениях и валидации Приложение База данных Клиент Интероперабельность Обзор спецификации валидации компонентов Краткая история валидации компонентов Что нового появилось в версии Bean Validation 1.1 Справочная реализация Написание ограничений Внутренняя организация ограничения Встроенные ограничения Определение собственных ограничений Сообщения Контекст ConstraintValidator Группы Дескрипторы развертывания Валидация ограничений Валидационные API Валидация компонентов Валидация свойств Валидация значений Валидация методов Валидация групп Все вместе Написание компонента Customer Написание компонента Address Написание ограничения @Email Написание ограничения @ZipCode Написание интеграционных тестов CustomerIT и AddressIT Компиляция и тестирование в Maven Резюме Глава 4. Java Persistence API Понятие сущностей Анатомия сущности Объектно-реляционное отображение Выполнение запросов к сущностям Единица сохраняемости Жизненный цикл сущности и обратные вызовы Интеграция с Bean Validation Обзор спецификации JPA Краткая история JPA Что нового в JPA Эталонная реализация Все вместе Написание сущности Book Написание класса Main Написание интеграционного теста BookIT Написание единицы сохраняемости Написание SQL-сценария для загрузки данных Компиляция и тестирование с использованием Maven Применение класса Main с использованием Maven Проверка сгенерированной схемы Резюме Глава 5. Объектно-реляционное отображение Элементарное отображение Таблицы Первичные ключи Атрибуты Тип доступа Коллекции базовых типов Отображение базовых типов Отображение с использованием XML Встраиваемые объекты Отображение связей Связи в реляционных базах данных Связи между сущностями Выборка связей Упорядочение связей Отображение наследования Стратегии наследования Типы классов в иерархии наследования Резюме Глава 6. Управление постоянными объектами Менеджер сущностей Получение менеджера сущностей Контекст постоянства Манипулирование сущностями JPQL SELECT FROM WHERE ORDER BY GROUP BY и HAVING Массовое удаление Массовое обновление Запросы Динамические запросы Именованные запросы Criteria API (или объектно-ориентированные запросы) «Родные» запросы Запросы к хранимым процедурам Cache API Конкурентный доступ Контроль версий Оптимистическая блокировка Пессимистическая блокировка Жизненный цикл сущности Обратные вызовы Слушатели Резюме Глава 7. Корпоративные EJB-компоненты Понятие корпоративных EJB-компонентов Типы EJB-компонентов Процесс и встроенный контейнер Службы, обеспечиваемые контейнером EJB Lite Обзор спецификации EJB Краткая история спецификации EJB Что нового в EJB 3.2 Эталонная реализация Написание корпоративных EJB-компонентов Анатомия EJB-компонента Класс EJB-компонента Удаленные и локальные представления, а также представление без интерфейса Интерфейсы веб-служб Переносимое JNDI-имя EJB-компоненты без сохранения состояния EJB-компоненты с сохранением состояния Одиночные EJB-компоненты Инициализация при запуске Объединение одиночных EJB-компонентов в цепочку Конкурентный доступ Конкурентный доступ, управляемый контейнером Конкурентный доступ, управляемый EJB-компонентом Время ожидания конкурентного доступа и запрет конкурентного доступа Внедрение зависимостей API-интерфейс SessionContext Асинхронные вызовы Дескриптор развертывания Контекст именования среды Упаковка Развертывание EJB-компонента Вызов корпоративных EJB-компонентов Вызов с использованием внедрения Вызов с использованием CDI Вызов с использованием JNDI Резюме Глава 8. Функции обратного вызова, служба таймера и авторизация Жизненный цикл сеансовых компонентов Компоненты, не сохраняющие состояния, и синглтоны Компоненты, хранящие состояние Методы обратного вызова Служба таймера Выражения на основе календаря Декларативное создание таймера Программное создание таймера Авторизация Декларативная авторизация Программная авторизация Все вместе Написание сущности Entity Написание сеансового компонента BookEJB, не сохраняющего состояние Написание CDI DatabaseProducer Блок хранения для BookEJB Написание DatabasePopulator и определение источника данных Написание интеграционного теста BookEJBIT Компиляция, тестирование и упаковка с помощью Maven Развертывание на GlassFish Написание класса Main Резюме Глава 9. Транзакции Понимание транзакций Правила ACID Условия считывания Уровни изоляции транзакций Локальные транзакции JTA Распределенные транзакции и XA Обзор спецификаций для работы с транзакциями Краткая история JTA Что нового в версии 1.2 JTA Примеры реализации Поддержка транзакций в EJB Маркировка CMT для отката транзакции Исключения и транзакции Поддержка транзакций в Managed Beans Резюме Глава 10. JavaServer Faces Концепция веб-страниц HTML XHTML CSS DOM JavaScript Концепция JSF FacesServlet Страницы и компоненты Facelets Отрисовщики Преобразователи и валидаторы Компоненты-подложки и навигация Язык выражений Поддержка AJAX Обзор спецификации JSF Краткая история веб-интерфейсов Краткая история JSF Что нового в JSF Эталонные реализации Создание JSF-страниц и компонентов Структура страницы JSF Заголовок Body Жизненный цикл Анатомия компонентов JSF HTML-компоненты JSF Команды Цели Компоненты ввода Компоненты вывода Компоненты выбора Графика Сетка и таблицы Сообщения об ошибках Разное Базовые атрибуты Основные теги JSF Теги шаблонов JSF Теги JSTL Основные действия Действия форматирования Управление ресурсами Неявные объекты Составные компоненты Резюме Глава 11. Обработка и навигация Шаблон MVC FacesServlet FacesContext Faces-config xml Создание компонентов-подложек Структура компонентов-подложек Области действия Жизненный цикл и аннотации функций обратного вызова Обработка исключений и сообщений Объединение JSF и EJB Навигация Явная навигация Правила навигации Добавление страниц в закладки Преобразование и проверка Преобразователи Пользовательские преобразователи Валидаторы Пользовательские валидаторы Интеграция с Bean Validation AJAX Общие понятия Поддержка в JSF Все вместе Написание сущности Book Написание BookEJB Написание компонента-подложки BookController Написание шаблона layout.xhtml Написание страницы newBook.xhtml Написание страницы viewBook.xhtml Компиляция и упаковка с помощью Maven Развертывание на GlassFish Запуск примера Резюме Глава 12. Обработка XML и JSON Основные сведения об XML XML-документ Проверка схемы XML Анализ с помощью SAX и DOM DOM SAX Выполнение запросов с помощью XPath Преобразование с помощью XSLT Обзор спецификаций XML Краткая история XML-спецификаций Спецификации XML в Java Примеры реализаций Архитектура Java для обработки XML Конфигурирование JAXP JAXP и SAX JAXP и DOM JAXP и XSLT Архитектура Java для связывания XML Связывание Аннотации Основные сведения о JSON Обзор спецификаций JSON JSON-P Пример реализации Обработка JSON Построение JSON Анализ JSON Генерация JSON Все вместе Написание класса CreditCard Написание теста CreditCardXMLTest Написание теста CreditCardJSonTest Резюме Глава 13. Обмен сообщениями Основные сведения об обмене сообщениями От точки к точке Публикация-подписка Администрируемые объекты Компоненты, управляемые сообщениями Обзор спецификаций обмена сообщениями Краткая история обмена сообщениями Что нового в JMS Что нового в EJB Примеры реализации Java Messaging Service API Классический API ConnectionFactory Место назначения Соединение Сеанс Сообщения Заголовок Свойства Тело сообщения Отправка и получение сообщений с помощью классического API Упрощенный API JMSContext JMSProducer JMSConsumer Написание производителей сообщений Производство сообщения вне контейнера Производство сообщения внутри контейнера Производство сообщений внутри контейнера с помощью CDI Написание потребителей сообщений Синхронная доставка Асинхронная доставка Механизмы надежности Фильтрация сообщений Настройка параметров времени существования сообщений Задание стойкости сообщения Управление подтверждением Создание стойких потребителей Определение приоритетов Написание компонентов, управляемых сообщениями Структура MDB @MessageDriven @ActivationConfigProperty Внедрение зависимостей Контекст MDB Жизненный цикл и аннотации функций обратного вызова MDB как потребитель MDB как производитель сообщений Транзакции Обработка исключений Все вместе Написание класса OrderDTO Написание класса OrderProducer Написание OrderConsumer Написание класса ExpensiveOrderMDB Компиляция и упаковка с помощью Maven Создание администрируемых объектов Развертывание MDB на GlassFish Выполнение примера Резюме Глава 14. Веб-службы SOAP Основные сведения о веб-службах SOAP XML WSDL SOAP UDDI Транспортный протокол Обзор спецификаций веб-служб SOAP Краткая история спецификаций веб-служб SOAP Спецификации, связанные с веб-службами SOAP JAX-WS 2.2a Web Services 1.3 WS-Metadata 2.3 Что нового в спецификации веб-служб SOAP Примеры реализаций Создание веб-служб SOAP Структура веб-службы SOAP Конечные точки веб-служб SOAP Преобразование WSDL @WebService @WebMethod @WebResult @WebParam @OneWay @SoapBinding Собираем все преобразования воедино Обработка исключений Жизненный цикл и функции обратного вызова WebServiceContext Дескриптор развертывания Упаковка Публикация веб-служб SOAP Вызов веб-служб SOAP Структура потребителя SOAP Программный вызов Вызов с помощью внедрения Вызов с помощью CDI Все вместе Написание класса CreditCard Написание веб-службы SOAP CardValidator Написание модульного теста CardValidatorTest Написание интеграционного теста CardValidatorIT Компиляция, тестирование и упаковка с помощью Maven Развертывание на GlassFish Написание класса WebServiceConsumer Создание артефактов потребителя и упаковка с помощью Maven Запуск класса WebServiceConsumer Резюме Глава 15. Веб-службы в стиле REST Понятие о веб-службах RESTful Практика работы в браузере Ресурсы и URI Представления Адресуемость Связность Единообразный интерфейс Отсутствие сохранения состояния HTTP От Сети к веб-службам WADL Обзор спецификаций веб-служб с передачей состояния представления Краткая история REST API Java для веб-служб с передачей состояния представления Что нового в JAX-RS Справочная реализация Написание веб-служб с передачей состояния представления Структура веб-службы с передачей состояния представления Выполнение операций CRUD над веб-службами в стиле REST Определение URI и URI связывания Извлечение параметров Использование и создание типов содержимого Возвращаемые типы Сопоставление HTTP-методов Контекстная информация Поставщик объектов Обработка исключений Жизненный цикл и обратные вызовы Упаковка Вызов веб-служб в стиле REST Клиентский API Структура потребителя REST Все вместе Написание сущности Book Написание JAXB-компонента Books Написание службы BookRestService Конфигурирование JAX-RS Компиляция и упаковка с помощью Maven Развертывание в GlassFish WADL Написание интеграционного теста BookRestServiceIT Резюме