Изучаем 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 163 Глава 5. Объектно-реляционное отображение
    • 163 Элементарное отображение
      • 164 Таблицы
      • 166 Первичные ключи
      • 171 Атрибуты
      • 177 Тип доступа
      • 180 Коллекции базовых типов
      • 181 Отображение базовых типов
    • 183 Отображение с использованием XML
    • 186 Встраиваемые объекты
    • 189 Отображение связей
      • 191 Связи в реляционных базах данных
      • 192 Связи между сущностями
      • 203 Выборка связей
      • 205 Упорядочение связей
    • 208 Отображение наследования
      • 208 Стратегии наследования
      • 217 Типы классов в иерархии наследования
    • 221 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме
  • 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 Резюме

Инструкция как скачать книгу Энтони Гонсалвес: Изучаем Java EE 7 в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Изучаем Java EE 7
Рейтинг книги:
0 голосов
3543

Поиск книг:




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

Статистика: