Spring в действии
Покупка
Тематика:
Программирование на Java
Издательство:
ДМК Пресс
Автор:
Уоллс Крейг
Перевод:
Киселев Артём Николаевич
Год издания: 2022
Кол-во страниц: 544
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-93700-112-2
Артикул: 458601.02.99
Это исчерпывающее руководство по основным возможностям Spring, написанное простым и ясным языком. Книга шаг за шагом проведет вас по пути создания законченного веб-приложения на основе базы данных. Новое, 6-е издание охватывает не только основы Spring, но также новые возможности, такие как реактивные потоки или интеграция с Kubernetes и RSocket. Независимо от того, впервые ли вы знакомитесь с фреймворком Spring или переходите на новую версию Spring 5.3, этот классический бестселлер станет вашей настольной книгой.
Издание предназначено Java-разработчикам, как уже использующим, так и только начинающим применять в своей работе Spring.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Крейг Уоллс Spring в действии
Spring in Action Sixth Edition CRAIG WALLS
Spring в действии 6-е издание КРЕЙГ УОЛЛС Москва, 2022
УДК 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 (англ.) © Manning Publications, 2022 ISBN 978-5-93700-112-2 (рус.) © Перевод, оформление, издание, ДМК Пресс, 2022
Оглавление Часть 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
Содержание Из отзывов к пятому изданию книги Крейга Уоллса «Spring в действии» ........ 13 Предисловие ........................................................................................................ 14 Благодарности .................................................................................................... 15 Об этой книге ..................................................................................................... 17 Об авторе ........................................................................................................... 22 Об иллюстрации на обложке .............................................................................. 23 Часть I ОСНОВЫ SPRING ................................................................ 24 1 Введение в Spring.................................................................................. 25 1.1 Что такое Spring? .................................................................................... 26 1.2 Инициализация приложения Spring ..................................................... 29 1.2.1 Инициализация проекта Spring с помощью Spring Tool Suite .......... 30 1.2.2 Структура проекта Spring ........................................................... 34 1.3 Разработка приложения 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 1.4 Обзор ландшафта Spring ........................................................................ 50 1.4.1 Ядро Spring Framework .................................................................. 50 1.4.2 Spring Boot .................................................................................... 51 1.4.3 Spring Data .................................................................................... 51 1.4.4 Spring Security ............................................................................... 52 1.4.5 Spring Integration и Spring Batch ..................................................... 52 1.4.6 Spring Cloud .................................................................................. 52 1.4.7 Spring Native ................................................................................. 53 Итоги ................................................................................................................. 53 2 Разработка веб-приложений .................................................... 54 2.1 Отображение информации .................................................................... 55 2.1.1 Предметная область ингредиентов .............................................. 56
Содержание 2.1.2 Создание класса контроллера ....................................................... 60 2.1.3 Создание представления ............................................................... 63 2.2 Обработка отправленной формы .......................................................... 68 2.3 Проверка данных в форме ..................................................................... 75 2.3.1 Объявление правил проверки ......................................................... 76 2.3.2 Выполнение проверки после привязки ............................................ 79 2.3.3 Отображение сообщений об ошибках ............................................ 80 2.4 Работа с контроллерами представлений .............................................. 82 2.5 Выбор механизма шаблонов для создания представлений ................ 84 2.5.1 Кеширование шаблонов ................................................................. 85 Итоги ................................................................................................................. 86 3 Работа с данными .............................................................................. 88 3.1 Чтение и запись данных с помощью JDBC ........................................... 89 3.1.1 Подготовка объектов данных к хранению ..................................... 91 3.1.2 Использование JdbcTemplate .......................................................... 92 3.1.3 Определение схемы и предварительная загрузка данных ............... 98 3.1.4 Сохранение данных ......................................................................101 3.2 Spring Data JDBC ....................................................................................106 3.2.1 Добавление Spring Data JDBC в спецификацию сборки ...................107 3.2.2 Определение интерфейсов репозиториев .....................................107 3.2.3 Аннотирование классов данных предметной области ..................109 3.2.4 Предварительная загрузка данных с помощью CommandLineRunner ....................................................................112 3.3 Хранение данных с по мощью 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 Работа с нереляционными данными .................................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 5 Безопасность в Spring ....................................................................144 5.1 Включение Spring Security ....................................................................145 5.2 Настройка аутентификации .................................................................147 5.2.1 Служба хранения сведений о пользователях в памяти ..................149 5.2.2 Настройка аутентификации пользователя .................................150
Содержание 5.3 Защита веб-запросов ............................................................................157 5.3.1 Защита запросов .........................................................................157 5.3.2 Создание страницы входа ............................................................160 5.3.3 Использование сторонних систем аутентификации ....................163 5.3.4 Предотвращение подделки межсайтовых запросов ......................166 5.4 Безопасность на уровне методов .........................................................167 5.5 Знай своего пользователя .....................................................................169 Итоги ................................................................................................................172 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.2 Создание своих конфигурационных свойств ......................................182 6.2.1 Определение хранителей конфигурационных свойств ..................184 6.2.2 Объявление метаданных конфигурационного свойства ................187 6.3 Настройка с по мощью профилей .........................................................190 6.3.1 Определение свойств профиля .....................................................191 6.3.2 Активация профилей ...................................................................192 6.3.3 Условное создание bean-компонентов для профилей.....................193 Итоги ................................................................................................................195 Часть II ИНТЕГРАЦИЯ С ПРИЛОЖЕНИЯМИ SPRING ..........................................................................................196 7 Создание служб REST ......................................................................197 7.1 Создание контроллеров RESTful ..........................................................198 7.1.1 Извлечение данных с сервера ........................................................198 7.1.2 Отправка данных на сервер .........................................................204 7.1.3 Изменение данных на сервере .......................................................205 7.1.4 Удаление данных на сервере .........................................................208 7.2 Включение услуг на основе данных .....................................................209 7.2.1 Настройка имен отношений и путей к ресурсам .........................212 7.2.2 Деление на страницы и упорядочение ...........................................214 7.3 Использование служб REST ..................................................................215 7.3.1 Получение ресурса запросом GET..................................................217 7.3.2 Отправка ресурса запросом PUT ..................................................219 7.3.3 Удаление ресурса запросом DELETE ..............................................219 7.3.4 Отправка ресурса запросом POST ................................................220 Итоги ................................................................................................................221 8 Безопасность REST API.................................................................222 8.1 Знакомство с OAuth 2 ............................................................................223 8.2 Создание сервера авторизации ............................................................229
Содержание 8.3 Защита API с по мощью сервера ресурсов ............................................238 8.4 Разработка клиента ...............................................................................241 Итоги ................................................................................................................246 9 Асинхронная передача сообщений........................................247 9.1 Отправка сообщений с по мощью JMS .................................................248 9.1.1 Настройка JMS ............................................................................249 9.1.2 Отправка сообщений с по мощью JmsTemplate ..............................251 9.1.3 Получение сообщений с по мощью JMS ...........................................260 9.2 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 10 Интеграция 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 11 Введение в Reactor ..............................................................................318 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
Содержание 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 Реактивное хранение данных ..................................................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 14 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
Содержание Часть IV РАЗВЕРТЫВАНИЕ SPRING ......................................433 15 Spring Boot Actuator ..........................................................................434 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 15.4 Защита конечных точек Actuator .........................................................469 Итоги ................................................................................................................471 16 Администрирование 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 17 Мониторинг Spring с помощью JMX ..................................484 17.1 Работа с компонентами MBean в Actuator ...........................................484 17.2 Создание своих компонентов MBean ...................................................487 17.3 Отправка уведомлений .........................................................................489 Итоги ................................................................................................................491 18 Развертывание 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
Содержание 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
Из отзывов к пятому изданию книги Крейга Уоллса «Spring в действии» «Отличный источник знаний о таком сложном фреймворке». – Арнальдо Габриэль Айяла Мейер (Arnaldo Gabriel Ayala Meyer), Consultores Informáticos S.R.L. «Охватывает все аспекты последней версии Spring и демонстрирует их на практических примерах». – Билл Флай (Bill Fly), Брукхейвенский колледж «Настольная книга для изучения Spring Framework и отличное справочное руководство». – Колин Джойс (Colin Joyce), Cisco «На мой взгляд, это лучшая книга о Spring. Новое издание подверглось обширному обновлению, обеспечившему уникальный баланс между теорией и практикой. Она поможет вам быстро приступить к работе и даст подробные пояснения. – Дэниел Вон (Daniel Vaughan), Европейский институт биоинформатики «Исчерпывающее руководство по разработке облачных приложений с использованием Spring». – Дэвид Уизерспун (David Witherspoon), Parsons Corporation «Источник истины в последней инстанции для экосистемы Spring». – Эдду Мелендес Гонсалес (Eddú Meléndez Gonzales), Scotiabank «Я настоятельно рекомендую эту книгу и новичкам в Spring Framework, и опытным разработчикам, которые хотят глубже освоить новейшие возможности, доступные в экосистеме Spring 5». – Иэн Кэмпбелл (Iain Campbell), Tango Telecom «Даже будучи опытным разработчиком на Spring, я нашел в этой книге много новых практических советов». – Джеттро Коэнради (Jettro Coenradie), Luminis
Предисловие Фреймворк Spring появился более 18 лет назад, и его главной целью было упрощение разработки Java-приложений. Первоначальная цель состояла в том, чтобы дать облегченную альтернативу EJB 2.x. Но это было только начало. С годами фреймворк Spring охватывал все более широкий круг задач разработки, включая хранение данных, безопасность, интеграцию, облачные вычисления и т. д. Несмотря на то что возраст Spring приближается к двум десятилетиям и он все шире охватывает сферу разработки корпоративных приложений на Java, в развитии фреймворка не наблюдается никаких признаков замедления. Spring продолжает решать проблемы разработки на Java, будь то приложение, развернутое на обычном сервере приложений, или контейнерное приложение, развернутое в кластере Kubernetes в облаке. А учитывая наличие Spring Boot – фреймворка, обеспечивающего автоматическую конфигурацию, помощь в сборке зависимостей и мониторинг времени выполнения, – никогда не было более удачного времени, чтобы стать разработчиком на Spring! Это издание книги «Spring в действии» – ваш путеводитель по Spring и Spring Boot. Оно было обновлено и теперь еще полнее отражает все, что могут предложить оба фреймворка. Даже если вы только приступаете к изучению Spring, вы сможете запустить свое первое приложение на Spring еще до конца первой главы. По мере изучения книги вы узнаете, как создавать веб-приложения, работать с данными, защищать приложения и управлять их конфигурациями. Затем вы познакомитесь с вариантами интеграции приложений Spring с другими приложениями и узнаете, как извлечь выгоду из реактивного программирования, используя новый протокол RSocket. Ближе к концу вы увидите, как подготовить приложение к передаче в промышленное окружение, и узнаете о доступных вариантах развертывания. Кем бы вы ни были – новичком, только начинающим изучать Spring, или ветераном, с многолетним опытом разработки на Spring, – эта книга станет вашим следующим шагом в вашем путешествии. Я очень рад представить вам это руководство и с нетерпением жду появления ваших творений на Spring!
Благодарности Одна из самых замечательных особенностей Spring и Spring Boot – автоматическое создание всей базовой инфраструктуры приложения, что позволяет вам как разработчику сосредоточиться на логике, уникальной для вашего приложения. К сожалению, при написании книг такое невозможно. Или я что-то упустил? Многие сотрудники в издательстве Manning приложили все силы, чтобы эта книга стала как можно лучше. Большое спасибо моему редактору- консультанту Дженни Стаут (Jenny Stout) и выпускающему редактору Дейдре Хайам (Deirdre Hiam), литературному редактору Памеле Хант (Pamela Hunt), художнику Дженнифер Хоул (Jennifer Houle) и всей производственной команде за прекрасную работу над этой книгой. В создании книги участвовало несколько рецензентов, которые вычитывали рукопись и своими бесценными отзывами помогли не сбиться с курса и продолжать освещать то, что действительно важно. За это я благодарю Эла Пезевски (Al Pezewski), Алессандро Кам- пейса (Alessandro Campeis), Бекки Хьюетт (Becky Huett), Кристиана Кройцер-Бека (Christian Kreutzer-Beck), Конора Редмонда (Conor Red- mond), Дэвида Паккуда (David Paccoud), Дэвида Торрубиа Иньиго (Da- vid Torrubia Iñigo), Дэвида Уизерспуна (David Witherspoon), Германа Гонсалеса-Морриса (German Gonzalez-Morris), Иэна Кэмпбелла (Iain Campbell), Джона Гюнтера (Jon Guenther), Кевина Ляо (Kevin Liao), Марка Дешампса (Mark Dechamps), Майкла Брайта (Michael Bright), Филиппа Виалатта (Philippe Vialatte), Пьера-Мишеля Анселя (Pierre- Michel Ansel), Тони Свитса (Tony Sweets), Уильяма Флая (William Fly) и Зородзайи Мукуя (Zorodzayi Mukuya). Я обязательно должен поблагодарить всю команду инженеров, занимающихся разработкой Spring. Вы работаете над развитием одного из самых невероятных фреймворков, которые я когда-либо видел, и я рад считать себя вашим коллегой. Большое спасибо моим соратникам по конференции «No Fluff/Just Stuff». Я продолжаю учиться у каждого из вас. И большое спасибо всем, кто посетил одну из моих сессий в рамках конференции NFJS;
Глава Благодарности несмотря на то что я стою за трибуной, я часто многому учусь у вас. Как и в предыдущем издании, я хотел бы поблагодарить финикийцев. Вы знаете, что вы сделали. Наконец, спасибо моей прекрасной жене Рейми (Raymie). Ты – любовь всей моей жизни и моя самая сладкая мечта: спасибо за твою поддержку и за то, что выдержала еще один книжный проект. Спасибо моим милым и замечательным девочкам, Мейси (Maisy) и Мади (Madi): я так горжусь вами, и я рад видеть, какими замечательными девушками вы становитесь. Я люблю всех вас больше, чем можно себе представить или выразить словами.
Об этой книге «Spring в действии, шестое издание» писалась с простой целью: дать вам возможность создавать потрясающие приложения с использованием Spring Framework, Spring Boot и других инструментов из экосистемы Spring. Книга начинается демонстрацией создания веб- приложения на Java с поддержкой базы данных с по мощью Spring и Spring Boot. Затем она описывает дополнительные возможности, показывая, как организовать интеграцию с другими приложениями и программами, использующими реактивные типы. Наконец, в ней обсуждаются вопросы подготовки приложения к развертыванию. Все проекты в экосистеме Spring снабжаются превосходной документацией, однако эта книга дает то, чего не может дать ни один из справочных документов, – практическое руководство по объединению компонентов Spring и созданию действующих приложений. Кому адресована эта книга Книга «Spring в действии, шестое издание» адресована всем Java- разработчикам, желающим начать использовать Spring Boot и Spring Framework, а также опытным разработчикам на Spring, которые стремятся выйти за рамки основ и изучить новейшие возможности Spring. Структура книги Книга состоит из четырех частей и 18 глав. Часть I охватывает основы создания приложений на Spring: глава 1 знакомит с фреймворками Spring и Spring Boot, а также с приемами инициализации проекта на Spring. В этой главе вы сделаете первые шаги к созданию приложения Spring, которое будете развивать на протяжении всей книги; глава 2 обсуждает создание веб-уровня приложения с использованием Spring MVC. Здесь вы создадите контроллеры, обрабатывающие веб-запросы, и представления, отображающие информацию в веб-браузере;