Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 639871)
Контекстум
Антиплагиат Руконтекст

Spring в действии (5000,00 руб.)

0   0
Первый авторУоллс К.
ИздательствоМ.: ДМК Пресс
Страниц546
ID794703
АннотацияЭто исчерпывающее руководство по основным возможностям Spring, написанное простым и ясным языком. Книга шаг за шагом проведет вас по пути создания законченного веб-приложения на основе базы данных. Новое 6-е издание охватывает не только основы Spring,но также новые возможности,такие как реактивные потоки или интеграция с Kubernetes и RSocket. Независимо от того, впервые ли вы знакомитесь с фреймворком Spring или переходите на новую версию Spring 5.3, этот классический бестселлер станет вашей настольной книгой. Издание предназначено Java-разработчикам, как уже использующим,так и только начинающии применять в своей работе Spring.
ISBN978-5-93700-112-2
УДК004.432
ББК32.972.1
Уоллс, К. Spring в действии / К. Уоллс .— 6-е изд. — Москва : ДМК Пресс, 2022 .— 546 с. : ил. — ISBN 978-5-93700-112-2 .— URL: https://rucont.ru/efd/794703 (дата обращения: 22.06.2024)

Предпросмотр (выдержки из произведения)

Spring_в_действии.pdf
Стр.5
Стр.6
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Spring_в_действии.pdf
УДК 004.432 ББК 32.972.1 У63 У63 Spring в действии. 6-е изд. / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2022. – 544 с.: ил. Уоллс К. ISBN 978-5-93700-112-2 Это исчерпывающее руководство по основным возможностям Spring, написанное простым и ясным языком. Книга шаг за шагом проведет вас по пути создания законченного веб-приложения на основе базы данных. Новое 6-е издание охватывает не только основы Spring, но также новые возможности, такие как реактивные потоки или интеграция с Kubernetes и RSocket. Независимо от того, впервые ли вы знакомитесь с фреймворком Spring или переходите на новую версию Spring 5.3, этот классический бестселлер станет вашей настольной книгой. Издание предназначено Java-разработчикам, как уже использующим, так и только начинающии применять в своей работе Spring. УДК 004.432 ББК 32.972.1 Original English language edition published by Manning Publications USA. Copyright © 2022 by Manning Publications. Russian-language edition copyright © 2022 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-6172-9757-1 (англ.) ISBN 978-5-93700-112-2 (рус.) © Manning Publications, 2022 © Перевод, оформление, издание, ДМК Пресс, 2022
Стр.5
Оглавление Часть I  ОСНОВЫ SPRING .................................................................................24 1  Введение в Spring ...................................................................................25 2  Разработка веб-приложений .................................................................54 3  Работа с данными ...................................................................................88 4  Работа с нереляционными данными ..................................................123 5  Безопасность в Spring ...........................................................................144 6  Работа с конфигурацией ......................................................................173 Часть II  ИНТЕГРАЦИЯ С ПРИЛОЖЕНИЯМИ SPRING ...............................196 7  Создание служб REST ...........................................................................197 8  Безопасность REST API .........................................................................222 9  Асинхронная передача сообщений .....................................................247 10  Интеграция Spring ................................................................................283 Часть III  РЕАКТИВНЫЙ SPRING .....................................................................317 11  Введение в Reactor ................................................................................318 12  Разработка реактивных API .................................................................350 13  Реактивное хранение данных ..............................................................382 14  RSocket ...................................................................................................416 Часть IV  РАЗВЕРТЫВАНИЕ SPRING ..............................................................433 15  Spring Boot Actuator ..............................................................................434 16  Администрирование Spring .................................................................472 17  Мониторинг Spring с помощью JMX....................................................484 18  Развертывание Spring ..........................................................................492
Стр.6
Содержание Из отзывов к пятому изданию книги Крейга Уоллса «Spring в действии» ........ 13 Предисловие ........................................................................................................ 14 Благодарности .................................................................................................... 15 Об этой книге ..................................................................................................... 17 Об авторе ........................................................................................................... 22 Об иллюстрации на обложке .............................................................................. 23 Часть I ОСНОВЫ SPRING ................................................................ 24 1 Введение в Spring.................................................................................. 25 1.1 1.2 1.3 Что такое Spring? .................................................................................... 26 Инициализация приложения Spring ..................................................... 29 1.2.1 Инициализация проекта Spring с помощью Spring Tool Suite .......... 30 1.2.2 Структура проекта Spring ........................................................... 34 1.4 Разработка приложения Spring ............................................................. 41 1.3.1 Обработка веб-запросов ............................................................... 41 1.3.2 Определение представления ......................................................... 42 1.3.3 Тестирование контроллера .......................................................... 43 1.3.4 Сборка и запуск приложения ......................................................... 45 1.3.5 Spring Boot DevTools ...................................................................... 47 1.3.6 Обзор результатов ....................................................................... 49 Spring Boot .................................................................................... 51 Spring Data .................................................................................... 51 Spring Security ............................................................................... 52 Spring Integration и Spring Batch ..................................................... 52 Spring Cloud .................................................................................. 52 Spring Native ................................................................................. 53 Обзор ландшафта Spring ........................................................................ 50 1.4.1 Ядро Spring Framework .................................................................. 50 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 2 Итоги ................................................................................................................. 53 Разработка веб-приложений .................................................... 54 2.1 Отображение информации .................................................................... 55 2.1.1 Предметная область ингредиентов .............................................. 56
Стр.7
Содержание 7 2.2 2.3 2.4 2.1.2 Создание класса контроллера ....................................................... 60 2.1.3 Создание представления ............................................................... 63 Обработка отправленной формы .......................................................... 68 Проверка данных в форме ..................................................................... 75 2.3.1 Объявление правил проверки ......................................................... 76 2.3.2 Выполнение проверки после привязки ............................................ 79 2.3.3 Отображение сообщений об ошибках ............................................ 80 Работа с контроллерами представлений .............................................. 82 2.5 Выбор механизма шаблонов для создания представлений ................ 84 2.5.1 Кеширование шаблонов ................................................................. 85 Итоги ................................................................................................................. 86 3 Работа с данными .............................................................................. 88 3.1 3.2 Чтение и запись данных с помощью JDBC ........................................... 89 3.1.1 Подготовка объектов данных к хранению ..................................... 91 3.1.2 Использование JdbcTemplate .......................................................... 92 3.1.3 Определение схемы и предварительная загрузка данных ............... 98 3.1.4 Сохранение данных ......................................................................101 3.3 Spring Data JDBC ....................................................................................106 3.2.1 Добавление Spring Data JDBC в спецификацию сборки ...................107 3.2.2 Определение интерфейсов репозиториев .....................................107 3.2.3 Аннотирование классов данных предметной области ..................109 3.2.4 Предварительная загрузка данных с помощью CommandLineRunner ....................................................................112 Хранение данных с по мощью Spring Data JPA ....................................114 3.3.1 Добавление зависимости Spring Data JPA .....................................114 3.3.2 Аннотирование классов данных предметной области ..................115 3.3.3 Объявление репозиториев JPA ......................................................119 3.3.4 Специализация репозиториев ......................................................119 Итоги ................................................................................................................122 4 5 Работа с нереляционными данными .................................123 4.1 Репозитории в Cassandra ......................................................................124 4.1.1 Включение Spring Data Cassandra .................................................124 4.1.2 Моделирование данных в Cassandra ..............................................128 4.1.3 Отображение типов данных предметной области для хранения в Cassandra .............................................................129 4.1.4 Определение репозиториев Cassandra ..........................................135 4.2 Определение репозиториев MongoDB .................................................136 4.2.1 Включение Spring Data MongoDB ..................................................137 4.2.2 Отображение типов данных предметной области в документы ................................................................................138 4.2.3 Определение репозиториев MongoDB ...........................................141 Итоги ................................................................................................................143 Безопасность в Spring ....................................................................144 5.1 5.2 Включение Spring Security ....................................................................145 Настройка аутентификации .................................................................147 5.2.1 Служба хранения сведений о пользователях в памяти ..................149 5.2.2 Настройка аутентификации пользователя .................................150
Стр.8
8 Содержание 5.3 Защита веб-запросов ............................................................................157 5.3.1 Защита запросов .........................................................................157 5.3.2 Создание страницы входа ............................................................160 5.3.3 Использование сторонних систем аутентификации ....................163 5.3.4 Предотвращение подделки межсайтовых запросов ......................166 Безопасность на уровне методов .........................................................167 Знай своего пользователя .....................................................................169 Итоги ................................................................................................................172 5.4 5.5 6 Работа с конфигурацией ..............................................................173 6.1 Тонкая настройка автоконфигурации .................................................174 6.1.1 Абстракция окружения Spring ......................................................175 6.1.2 Настройка источника данных .....................................................176 6.1.3 Настройка встроенного сервера ..................................................178 6.1.4 Настройка журналирования ........................................................179 6.1.5 Использование специальных значений свойств .............................181 6.3 Настройка с по мощью профилей .........................................................190 6.3.1 Определение свойств профиля .....................................................191 6.3.2 Активация профилей ...................................................................192 6.3.3 Условное создание bean-компонентов для профилей.....................193 Итоги ................................................................................................................195 6.2 Создание своих конфигурационных свойств ......................................182 6.2.1 Определение хранителей конфигурационных свойств ..................184 6.2.2 Объявление метаданных конфигурационного свойства ................187 Часть II ИНТЕГРАЦИЯ С ПРИЛОЖЕНИЯМИ SPRING ..........................................................................................196 7 8 Создание служб REST ......................................................................197 Извлечение данных с сервера ........................................................198 7.2 7.3 7.1.2 Отправка данных на сервер .........................................................204 7.1.3 Изменение данных на сервере .......................................................205 7.1.4 Удаление данных на сервере .........................................................208 Включение услуг на основе данных .....................................................209 7.2.1 Настройка имен отношений и путей к ресурсам .........................212 7.2.2 Деление на страницы и упорядочение ...........................................214 7.1 Создание контроллеров RESTful ..........................................................198 7.1.1 Использование служб REST ..................................................................215 7.3.1 Получение ресурса запросом GET..................................................217 7.3.2 Отправка ресурса запросом PUT ..................................................219 7.3.3 Удаление ресурса запросом DELETE ..............................................219 7.3.4 Отправка ресурса запросом POST ................................................220 Итоги ................................................................................................................221 Безопасность REST API.................................................................222 8.1 Знакомство с OAuth 2 ............................................................................223 8.2 Создание сервера авторизации ............................................................229
Стр.9
Содержание 9 8.3 8.4 Защита API с по мощью сервера ресурсов ............................................238 Разработка клиента ...............................................................................241 Итоги ................................................................................................................246 9 10 Асинхронная передача сообщений........................................247 9.1 9.2 Отправка сообщений с по мощью JMS .................................................248 9.1.1 Настройка JMS ............................................................................249 9.1.2 Отправка сообщений с по мощью JmsTemplate ..............................251 9.1.3 Получение сообщений с по мощью JMS ...........................................260 RabbitMQ и AMQP ..................................................................................264 9.2.1 Добавление поддержки RabbitMQ в приложение Spring .................266 9.2.2 Отправка сообщений с по мощью RabbitTemplate ..........................267 9.2.3 Получение сообщений из RabbitMQ ...............................................271 9.3 Обмен сообщениями с по мощью Kafka ...............................................276 9.3.1 Настройка Spring для обмена сообщениями через Kafka ...............277 9.3.2 Отправка сообщений с по мощью KafkaTemplate ...........................278 9.3.3 Получение сообщений из Kafka ......................................................280 Итоги ................................................................................................................282 Интеграция Spring ............................................................................283 10.1 Объявление простого потока интеграции ...........................................284 10.1.1 Определение потоков интеграции в XML .....................................286 10.1.2 Определение потоков интеграции в коде на Java ..........................288 10.1.3 Конфигурация на Spring Integration DSL ........................................290 10.2 Обзор ландшафта Spring Integration ....................................................291 10.2.1 Каналы сообщений .......................................................................292 10.2.2 Фильтры .....................................................................................294 10.2.3 Преобразователи.........................................................................295 10.2.4 Маршрутизаторы .......................................................................296 10.2.5 Сплиттеры .................................................................................298 10.2.6 Активаторы служб .....................................................................301 10.2.7 Шлюзы .........................................................................................303 10.2.8 Адаптеры каналов .......................................................................304 10.2.9 Модули конечных точек ...............................................................306 10.3 Создание потока интеграции для электронной почты ......................308 Итоги ................................................................................................................316 Часть III РЕАКТИВНЫЙ SPRING ................................................317 Введение в Reactor ..............................................................................318 11 11.1 Основы реактивного программирования ...........................................319 11.1.1 Определение реактивных потоков данных ...................................321 11.2 Reactor ....................................................................................................323 11.2.1 Диаграммы реактивных потоков ................................................325 11.2.2 Добавление зависимости от Reactor ............................................326 11.3 Использование распространенных реактивных операций ................327 11.3.1 Создание реактивных типов ........................................................327 11.3.2 Комбинирование реактивных типов ............................................332
Стр.10
10 Содержание 11.3.3 Преобразование и фильтрация реактивных потоков ...................336 11.3.4 Выполнение логических операций с реактивными типами ............347 Итоги ................................................................................................................349 12 Разработка реактивных API ...................................................350 12.1 Spring WebFlux .......................................................................................350 12.1.1 Введение в Spring WebFlux ............................................................352 12.1.2 Создание реактивных контроллеров ............................................354 12.2 Определение обработчиков запросов в функциональном стиле ......359 12.3 Тестирование реактивных контроллеров ............................................363 12.3.1 Тестирование запросов GET .........................................................363 12.3.2 Тестирование запросов POST .......................................................366 12.3.3 Тестирование с использованием действующего сервера ...............367 12.4 Реактивный REST API ............................................................................368 12.4.1 Получение ресурсов ......................................................................369 12.4.2 Отправка ресурсов ......................................................................371 12.4.3 Удаление ресурсов ........................................................................372 12.4.4 Обработка ошибок ......................................................................373 12.4.5 Обмен запросами .........................................................................375 12.5 Защита реактивного веб-API ................................................................376 12.5.1 Реактивная модель настройки безопасности ..............................377 12.5.2 Настройка реактивной службы учетных записей ........................379 Итоги ................................................................................................................380 13 14 Реактивное хранение данных ..................................................382 13.1 R2DBC .....................................................................................................383 13.1.1 Определение сущностей предметной области для R2DBC ............384 13.1.2 Определение реактивных репозиториев ......................................389 13.1.3 Тестирование репозиториев R2DBC ............................................391 13.1.4 Определение службы управления агрегатами в OrderRepository ....393 13.2 Реактивное хранилище документов в MongoDB .................................399 13.2.1 Определение типов документов ..................................................400 13.2.2 Определение реактивных репозиториев MongoDB .......................403 13.2.3 Тестирование реактивных репозиториев MongoDB .....................404 13.3 Реактивное хранилище данных в Cassandra .......................................407 13.3.1 Определение классов предметной области для Cassandra ............408 13.3.2 Создание реактивных репозиториев Cassandra ............................412 13.3.3 Тестирование реактивных репозиториев Cassandra ....................413 Итоги ................................................................................................................415 RSocket .........................................................................................................416 14.1 Введение в RSocket ................................................................................417 14.2 Создание простого сервера и клиента RSocket ...................................419 14.2.1 Реализация модели «запрос–ответ» ............................................420 14.2.2 Реализация модели «запрос–поток» .............................................423 14.2.3 Реализация модели «запустил и забыл» ........................................425 14.2.4 Двунаправленная передача сообщений .........................................427 14.3 Передача по протоколу RSocket через WebSocket ...............................431 Итоги ................................................................................................................432
Стр.11
Содержание 11 Часть IV РАЗВЕРТЫВАНИЕ SPRING ......................................433 Spring Boot Actuator ..........................................................................434 15 15.1 Введение в Actuator ...............................................................................435 15.1.1 Настройка базового пути Actuator ..............................................436 15.1.2 Включение и отключение конечных точек Actuator .......................436 15.2 Использование конечных точек Actuator ............................................438 15.2.1 Получение важной информации о приложении .............................439 15.2.2 Просмотр сведений о конфигурации .............................................442 15.2.3 Наблюдение за действиями приложения ......................................451 15.2.4 Получение метрик времени выполнения .......................................453 15.3 Настройка Actuator ................................................................................457 15.3.1 Добавление информации в конечную точку /info ...........................457 15.3.2 Определение своих индикаторов работоспособности ..................462 15.3.3 Регистрация пользовательских метрик .......................................464 15.3.4 Создание пользовательских конечных точек ................................466 16 17 18 15.4 Защита конечных точек Actuator .........................................................469 Итоги ................................................................................................................471 Администрирование Spring .......................................................472 16.1 Spring Boot Admin ..................................................................................473 16.1.1 Создание сервера Admin ...............................................................473 16.1.2 Регистрация клиентов сервера Admin ..........................................475 16.2 Исследование возможностей сервера Admin ......................................476 16.2.1 Обзор общего состояния приложения ...........................................477 16.2.2 Просмотр ключевых метрик ........................................................478 16.2.3 Исследование свойств окружения .................................................478 16.2.4 Просмотр и изменение уровней журналирования .........................480 16.3 Защита сервера Admin ..........................................................................481 16.3.1 Включение регистрации на сервере Admin ....................................481 16.3.2 Аутентификация в Actuator .........................................................482 Итоги ................................................................................................................483 Мониторинг Spring с помощью JMX ..................................484 17.1 Работа с компонентами MBean в Actuator ...........................................484 17.2 Создание своих компонентов MBean ...................................................487 17.3 Отправка уведомлений .........................................................................489 Итоги ................................................................................................................491 Развертывание Spring ....................................................................492 18.1 Варианты развертывания .....................................................................493 18.2 Сборка выполняемых файлов JAR ........................................................494 18.3 Сборка образа контейнера ....................................................................495 18.3.1 Развертывание в Kubernetes .........................................................499 18.3.2 Корректное завершение работы ..................................................501 18.3.3 Проверка готовности и жизнеспособности приложения ..............502 18.4 Создание и развертывание файлов WAR .............................................506 18.5 Закончим тем, с чего начинали ............................................................508 Итоги ................................................................................................................508
Стр.12
12 Содержание A Создание проектов приложений Spring ..........................509 A.1 Инициализация проекта с по мощью Spring Tool Suite .......................509 A.2 Инициализация проекта с по мощью IntelliJ IDEA ..............................513 A.3 Инициализация проекта с помощью NetBeans ...................................514 A.4 Инициализация проекта с помощью start.spring.io............................519 A.5 Инициализация проекта из командной строки ..................................522 A.6 Сборка и запуск проектов .....................................................................525 Предметный указатель .....................................................................................527
Стр.13

Облако ключевых слов *


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст