Изучаем Java EE 7
Энтони Гонсалвес
Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java.
Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода.
Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP). В ней вы найдете максимально ценную информацию, изложенную с точки зрения эксперта по технологиям Java для предприятий.
Благодаря этой книге вы:
- познакомитесь с новейшей версией платформы Java EE;
- исследуете и научитесь использовать API EJB и JPA — от компонентов-сущностей, компонентов-сеансов до компонентов, управляемых сообщениями, и многого другого;
- откроете для себя API для разработки на веб-уровне, в частности JSF, Facelet и Expression Language;
- научитесь обращаться с веб-службами SOAP и RESTful, а также с другими службами, доступными в новейшей версии Java EE;
- узнаете, как создавать динамические пользовательские интерфейсы для корпоративных и транзакционных Java-приложений.
Издательство: Питер, 2014 г.
ISBN 978-5-496-00942-3
Количество страниц: 640.
Содержание книги «Изучаем Java EE 7»:
- 15 Предисловие
- 16 Об авторе
- 17 О техническом редакторе
- 18 Благодарности
- 19 Введение
- 20 Структура книги
- 21 Скачивание и запуск кода
- 21 Связь с автором
- 21 От издательства
- 22 Глава 1. Краткий обзор Java EE 7
- 22 Понимание Java EE
- 23 Архитектура
- 24 Компоненты
- 25 Контейнеры
- 26 Сервисы
- 27 Сетевые протоколы
- 28 Упаковка
- 30 Аннотации и дескрипторы развертывания
- 32 Стандарты
- 33 JCP
- 33 Портируемость
- 34 Модель программирования
- 35 Java Standard Edition 7
- 36 Строковый оператор
- 36 Ромбовидная нотация
- 37 Конструкция try-with-resources
- 38 Multicatch-исключения
- 38 NIO.2
- 39 Обзор спецификаций Java EE
- 39 Краткая история Java EE
- 41 Отсечение
- 42 Спецификации Java EE 7
- 45 Спецификации веб-профиля 7
- 46 Приложение CD-BookStore
- 47 Резюме
- 22 Понимание Java EE
- 49 Глава 2. Контекст и внедрение зависимостей
- 49 Понятие компонентов
- 50 Внедрение зависимостей
- 51 Управление жизненным циклом
- 52 Области видимости и контекст
- 52 Перехват
- 53 Слабая связанность и строгая типизация
- 53 Дескриптор развертывания
- 54 Обзор спецификаций по CDI
- 54 Краткая история спецификаций CDI
- 55 Что нового в CDI 1.1
- 55 Базовая реализация
- 55 Создание компонента CDI
- 56 Внутренняя организация компонента CDI
- 56 Внедрение зависимостей
- 64 Альтернативы
- 65 Производители данных
- 68 Утилизаторы
- 69 Области видимости
- 73 Компоненты в языке выражений
- 73 Перехватчики
- 74 Перехватчики целевого класса
- 76 Перехватчики классов
- 78 Перехватчик жизненного цикла
- 80 Связывание и исключение перехватчиков
- 80 Связывание с перехватчиком
- 82 Приоритизация связывания перехватчиков
- 83 Декораторы
- 84 События
- 87 Все вместе
- 88 Написание классов Book и BookService
- 89 Написание классов NumberGenerator
- 90 Написание квалификаторов
- 90 Написание автоматического журнала
- 91 Написание класса Main
- 92 Приведение в действие CDI с beans.xml
- 92 Компиляция и выполнение с помощью Maven
- 94 Запуск класса Main
- 94 Написание класса BookServiceIT
- 95 Активизация альтернатив и перехватчиков в файлах beans.xml для интеграционного тестирования
- 95 Запуск интеграционного теста
- 96 Резюме
- 49 Понятие компонентов
- 97 Глава 3. Валидация компонентов
- 97 Понятие об ограничениях и валидации
- 98 Приложение
- 99 База данных
- 99 Клиент
- 100 Интероперабельность
- 100 Обзор спецификации валидации компонентов
- 101 Краткая история валидации компонентов
- 101 Что нового появилось в версии Bean Validation 1.1
- 102 Справочная реализация
- 102 Написание ограничений
- 103 Внутренняя организация ограничения
- 106 Встроенные ограничения
- 107 Определение собственных ограничений
- 115 Сообщения
- 117 Контекст ConstraintValidator
- 119 Группы
- 120 Дескрипторы развертывания
- 121 Валидация ограничений
- 122 Валидационные API
- 125 Валидация компонентов
- 126 Валидация свойств
- 126 Валидация значений
- 127 Валидация методов
- 127 Валидация групп
- 128 Все вместе
- 130 Написание компонента Customer
- 130 Написание компонента Address
- 131 Написание ограничения @Email
- 131 Написание ограничения @ZipCode
- 133 Написание интеграционных тестов CustomerIT и AddressIT
- 134 Компиляция и тестирование в Maven
- 136 Резюме
- 97 Понятие об ограничениях и валидации
- 137 Глава 4. Java Persistence API
- 138 Понятие сущностей
- 139 Анатомия сущности
- 140 Объектно-реляционное отображение
- 143 Выполнение запросов к сущностям
- 146 Единица сохраняемости
- 146 Жизненный цикл сущности и обратные вызовы
- 148 Интеграция с Bean Validation
- 148 Обзор спецификации JPA
- 149 Краткая история JPA
- 150 Что нового в JPA 2.1
- 150 Эталонная реализация
- 151 Все вместе
- 152 Написание сущности Book
- 152 Написание класса Main
- 153 Написание интеграционного теста BookIT
- 155 Написание единицы сохраняемости
- 156 Написание SQL-сценария для загрузки данных
- 157 Компиляция и тестирование с использованием Maven
- 160 Применение класса Main с использованием Maven
- 161 Проверка сгенерированной схемы
- 162 Резюме
- 138 Понятие сущностей
- 163 Глава 5. Объектно-реляционное отображение
- 163 Элементарное отображение
- 164 Таблицы
- 166 Первичные ключи
- 171 Атрибуты
- 177 Тип доступа
- 180 Коллекции базовых типов
- 181 Отображение базовых типов
- 183 Отображение с использованием XML
- 186 Встраиваемые объекты
- 189 Отображение связей
- 191 Связи в реляционных базах данных
- 192 Связи между сущностями
- 203 Выборка связей
- 205 Упорядочение связей
- 208 Отображение наследования
- 208 Стратегии наследования
- 217 Типы классов в иерархии наследования
- 221 Резюме
- 163 Элементарное отображение
- 222 Глава 6. Управление постоянными объектами
- 223 Менеджер сущностей
- 225 Получение менеджера сущностей
- 227 Контекст постоянства
- 230 Манипулирование сущностями
- 240 JPQL
- 242 SELECT
- 244 FROM
- 244 WHERE
- 245 ORDER BY
- 246 GROUP BY и HAVING
- 246 Массовое удаление
- 247 Массовое обновление
- 247 Запросы
- 250 Динамические запросы
- 252 Именованные запросы
- 254 Criteria API (или объектно-ориентированные запросы)
- 257 «Родные» запросы
- 258 Запросы к хранимым процедурам
- 261 Cache API
- 264 Конкурентный доступ
- 266 Контроль версий
- 267 Оптимистическая блокировка
- 269 Пессимистическая блокировка
- 270 Жизненный цикл сущности
- 272 Обратные вызовы
- 275 Слушатели
- 279 Резюме
- 223 Менеджер сущностей
- 281 Глава 7. Корпоративные EJB-компоненты
- 282 Понятие корпоративных EJB-компонентов
- 283 Типы EJB-компонентов
- 284 Процесс и встроенный контейнер
- 285 Службы, обеспечиваемые контейнером
- 286 EJB Lite
- 287 Обзор спецификации EJB
- 288 Краткая история спецификации EJB
- 289 Что нового в EJB 3.2
- 290 Эталонная реализация
- 290 Написание корпоративных EJB-компонентов
- 291 Анатомия EJB-компонента
- 292 Класс EJB-компонента
- 292 Удаленные и локальные представления, а также представление без интерфейса
- 295 Интерфейсы веб-служб
- 296 Переносимое JNDI-имя
- 297 EJB-компоненты без сохранения состояния
- 301 EJB-компоненты с сохранением состояния
- 304 Одиночные EJB-компоненты
- 306 Инициализация при запуске
- 306 Объединение одиночных EJB-компонентов в цепочку
- 307 Конкурентный доступ
- 308 Конкурентный доступ, управляемый контейнером
- 309 Конкурентный доступ, управляемый EJB-компонентом
- 310 Время ожидания конкурентного доступа и запрет конкурентного доступа
- 311 Внедрение зависимостей
- 312 API-интерфейс SessionContext
- 313 Асинхронные вызовы
- 315 Дескриптор развертывания
- 317 Контекст именования среды
- 318 Упаковка
- 319 Развертывание EJB-компонента
- 321 Вызов корпоративных EJB-компонентов
- 321 Вызов с использованием внедрения
- 322 Вызов с использованием CDI
- 323 Вызов с использованием JNDI
- 324 Резюме
- 282 Понятие корпоративных EJB-компонентов
- 325 Глава 8. Функции обратного вызова, служба таймера и авторизация
- 325 Жизненный цикл сеансовых компонентов
- 326 Компоненты, не сохраняющие состояния, и синглтоны
- 327 Компоненты, хранящие состояние
- 329 Методы обратного вызова
- 332 Служба таймера
- 333 Выражения на основе календаря
- 335 Декларативное создание таймера
- 336 Программное создание таймера
- 338 Авторизация
- 338 Декларативная авторизация
- 341 Программная авторизация
- 343 Все вместе
- 343 Написание сущности Entity
- 345 Написание сеансового компонента BookEJB, не сохраняющего состояние
- 346 Написание CDI DatabaseProducer
- 347 Блок хранения для BookEJB
- 348 Написание DatabasePopulator и определение источника данных
- 349 Написание интеграционного теста BookEJBIT
- 351 Компиляция, тестирование и упаковка с помощью Maven
- 353 Развертывание на GlassFish
- 353 Написание класса Main
- 354 Резюме
- 355 Глава 9. Транзакции
- 355 Понимание транзакций
- 356 Правила ACID
- 356 Условия считывания
- 357 Уровни изоляции транзакций
- 357 Локальные транзакции JTA
- 358 Распределенные транзакции и XA
- 360 Обзор спецификаций для работы с транзакциями
- 361 Краткая история JTA
- 361 Что нового в версии 1.2 JTA
- 362 Примеры реализации
- 362 Поддержка транзакций в EJB
- 366 Маркировка CMT для отката транзакции
- 367 Исключения и транзакции
- 371 Поддержка транзакций в Managed Beans
- 373 Резюме
- 355 Понимание транзакций
- 374 Глава 10. JavaServer Faces
- 374 Концепция веб-страниц
- 375 HTML
- 377 XHTML
- 378 CSS
- 381 DOM
- 381 JavaScript
- 384 Концепция JSF
- 385 FacesServlet
- 385 Страницы и компоненты
- 387 Facelets
- 387 Отрисовщики
- 387 Преобразователи и валидаторы
- 388 Компоненты-подложки и навигация
- 389 Язык выражений
- 390 Поддержка AJAX
- 390 Обзор спецификации JSF
- 390 Краткая история веб-интерфейсов
- 391 Краткая история JSF
- 392 Что нового в JSF 2.2
- 393 Эталонные реализации
- 393 Создание JSF-страниц и компонентов
- 393 Структура страницы JSF
- 395 Заголовок
- 395 Body
- 398 Жизненный цикл
- 400 Анатомия компонентов JSF
- 400 HTML-компоненты JSF
- 401 Команды
- 402 Цели
- 402 Компоненты ввода
- 403 Компоненты вывода
- 404 Компоненты выбора
- 406 Графика
- 406 Сетка и таблицы
- 407 Сообщения об ошибках
- 408 Разное
- 409 Базовые атрибуты
- 409 Основные теги JSF
- 410 Теги шаблонов JSF
- 412 Теги JSTL
- 413 Основные действия
- 414 Действия форматирования
- 416 Управление ресурсами
- 417 Неявные объекты
- 419 Составные компоненты
- 424 Резюме
- 374 Концепция веб-страниц
- 425 Глава 11. Обработка и навигация
- 425 Шаблон MVC
- 426 FacesServlet
- 429 FacesContext
- 430 Faces-config.xml
- 431 Создание компонентов-подложек
- 432 Структура компонентов-подложек
- 434 Области действия
- 435 Жизненный цикл и аннотации функций обратного вызова
- 436 Обработка исключений и сообщений
- 439 Объединение JSF и EJB
- 439 Навигация
- 440 Явная навигация
- 441 Правила навигации
- 443 Добавление страниц в закладки
- 444 Преобразование и проверка
- 445 Преобразователи
- 447 Пользовательские преобразователи
- 449 Валидаторы
- 450 Пользовательские валидаторы
- 451 Интеграция с Bean Validation
- 451 AJAX
- 452 Общие понятия
- 453 Поддержка в JSF
- 455 Все вместе
- 457 Написание сущности Book
- 458 Написание BookEJB
- 458 Написание компонента-подложки BookController
- 459 Написание шаблона layout.xhtml
- 460 Написание страницы newBook.xhtml
- 462 Написание страницы viewBook.xhtml
- 463 Компиляция и упаковка с помощью Maven
- 464 Развертывание на GlassFish
- 465 Запуск примера
- 466 Резюме
- 425 Шаблон MVC
- 467 Глава 12. Обработка XML и JSON
- 467 Основные сведения об XML
- 468 XML-документ
- 469 Проверка схемы XML
- 472 Анализ с помощью SAX и DOM
- 472 DOM
- 472 SAX
- 473 Выполнение запросов с помощью XPath
- 473 Преобразование с помощью XSLT
- 475 Обзор спецификаций XML
- 475 Краткая история XML-спецификаций
- 476 Спецификации XML в Java
- 477 Примеры реализаций
- 477 Архитектура Java для обработки XML
- 478 Конфигурирование JAXP
- 479 JAXP и SAX
- 482 JAXP и DOM
- 483 JAXP и XSLT
- 484 Архитектура Java для связывания XML
- 486 Связывание
- 487 Аннотации
- 490 Основные сведения о JSON
- 492 Обзор спецификаций JSON
- 493 JSON-P
- 493 Пример реализации
- 493 Обработка JSON
- 494 Построение JSON
- 495 Анализ JSON
- 497 Генерация JSON
- 498 Все вместе
- 499 Написание класса CreditCard
- 499 Написание теста CreditCardXMLTest
- 500 Написание теста CreditCardJSonTest
- 501 Резюме
- 467 Основные сведения об XML
- 502 Глава 13. Обмен сообщениями
- 502 Основные сведения об обмене сообщениями
- 504 От точки к точке
- 505 Публикация-подписка
- 506 Администрируемые объекты
- 506 Компоненты, управляемые сообщениями
- 507 Обзор спецификаций обмена сообщениями
- 507 Краткая история обмена сообщениями
- 508 Что нового в JMS 2.0
- 508 Что нового в EJB 3.2
- 508 Примеры реализации
- 509 Java Messaging Service API
- 510 Классический API
- 510 ConnectionFactory
- 511 Место назначения
- 511 Соединение
- 512 Сеанс
- 512 Сообщения
- 512 Заголовок
- 514 Свойства
- 514 Тело сообщения
- 514 Отправка и получение сообщений с помощью классического API
- 516 Упрощенный API
- 517 JMSContext
- 519 JMSProducer
- 519 JMSConsumer
- 520 Написание производителей сообщений
- 520 Производство сообщения вне контейнера
- 521 Производство сообщения внутри контейнера
- 522 Производство сообщений внутри контейнера с помощью CDI
- 523 Написание потребителей сообщений
- 523 Синхронная доставка
- 525 Асинхронная доставка
- 526 Механизмы надежности
- 527 Фильтрация сообщений
- 527 Настройка параметров времени существования сообщений
- 528 Задание стойкости сообщения
- 528 Управление подтверждением
- 529 Создание стойких потребителей
- 529 Определение приоритетов
- 529 Написание компонентов, управляемых сообщениями
- 530 Структура MDB
- 531 @MessageDriven
- 532 @ActivationConfigProperty
- 533 Внедрение зависимостей
- 533 Контекст MDB
- 534 Жизненный цикл и аннотации функций обратного вызова
- 535 MDB как потребитель
- 535 MDB как производитель сообщений
- 536 Транзакции
- 537 Обработка исключений
- 538 Все вместе
- 538 Написание класса OrderDTO
- 539 Написание класса OrderProducer
- 540 Написание OrderConsumer
- 540 Написание класса ExpensiveOrderMDB
- 541 Компиляция и упаковка с помощью Maven
- 542 Создание администрируемых объектов
- 543 Развертывание MDB на GlassFish
- 543 Выполнение примера
- 544 Резюме
- 502 Основные сведения об обмене сообщениями
- 545 Глава 14. Веб-службы SOAP
- 546 Основные сведения о веб-службах SOAP
- 547 XML
- 547 WSDL
- 550 SOAP
- 551 UDDI
- 552 Транспортный протокол
- 552 Обзор спецификаций веб-служб SOAP
- 552 Краткая история спецификаций веб-служб SOAP
- 553 Спецификации, связанные с веб-службами SOAP
- 554 JAX-WS 2.2a
- 554 Web Services 1.3
- 555 WS-Metadata 2.3
- 555 Что нового в спецификации веб-служб SOAP
- 555 Примеры реализаций
- 555 Создание веб-служб SOAP
- 557 Структура веб-службы SOAP
- 558 Конечные точки веб-служб SOAP
- 558 Преобразование WSDL
- 559 @WebService
- 560 @WebMethod
- 561 @WebResult
- 562 @WebParam
- 562 @OneWay
- 562 @SoapBinding
- 564 Собираем все преобразования воедино
- 567 Обработка исключений
- 570 Жизненный цикл и функции обратного вызова
- 570 WebServiceContext
- 571 Дескриптор развертывания
- 572 Упаковка
- 572 Публикация веб-служб SOAP
- 573 Вызов веб-служб SOAP
- 574 Структура потребителя SOAP
- 574 Программный вызов
- 575 Вызов с помощью внедрения
- 576 Вызов с помощью CDI
- 577 Все вместе
- 577 Написание класса CreditCard
- 579 Написание веб-службы SOAP CardValidator
- 579 Написание модульного теста CardValidatorTest
- 580 Написание интеграционного теста CardValidatorIT
- 581 Компиляция, тестирование и упаковка с помощью Maven
- 583 Развертывание на GlassFish
- 584 Написание класса WebServiceConsumer
- 585 Создание артефактов потребителя и упаковка с помощью Maven
- 588 Запуск класса WebServiceConsumer
- 588 Резюме
- 546 Основные сведения о веб-службах SOAP
- 589 Глава 15. Веб-службы в стиле REST
- 590 Понятие о веб-службах RESTful
- 590 Практика работы в браузере
- 590 Ресурсы и URI
- 592 Представления
- 592 Адресуемость
- 593 Связность
- 594 Единообразный интерфейс
- 594 Отсутствие сохранения состояния
- 595 HTTP
- 602 От Сети к веб-службам
- 602 WADL
- 603 Обзор спецификаций веб-служб с передачей состояния представления
- 603 Краткая история REST
- 604 API Java для веб-служб с передачей состояния представления
- 604 Что нового в JAX-RS 2.0
- 605 Справочная реализация
- 605 Написание веб-служб с передачей состояния представления
- 606 Структура веб-службы с передачей состояния представления
- 606 Выполнение операций CRUD над веб-службами в стиле REST
- 608 Определение URI и URI связывания
- 609 Извлечение параметров
- 611 Использование и создание типов содержимого
- 613 Возвращаемые типы
- 615 Сопоставление HTTP-методов
- 617 Контекстная информация
- 619 Поставщик объектов
- 621 Обработка исключений
- 623 Жизненный цикл и обратные вызовы
- 623 Упаковка
- 624 Вызов веб-служб в стиле REST
- 624 Клиентский API
- 627 Структура потребителя REST
- 628 Все вместе
- 628 Написание сущности Book
- 629 Написание JAXB-компонента Books
- 630 Написание службы BookRestService
- 634 Конфигурирование JAX-RS
- 635 Компиляция и упаковка с помощью Maven
- 637 Развертывание в GlassFish
- 637 WADL
- 638 Написание интеграционного теста BookRestServiceIT
- 639 Резюме
- 590 Понятие о веб-службах RESTful
Инструкция как скачать книгу Энтони Гонсалвес: Изучаем Java EE 7 в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.