(2025).pdf....-1
Предисловие....11
Добро пожаловать....11
Условные обозначения....12
Использование примеров кода....13
Благодарности....13
Глава 1. Коротко о Spring Boot....15
Три основополагающие возможности Spring Boot....15
Упрощение управления зависимостями с помощью стартовых пакетов....15
Упрощение развертывания с помощью исполняемых JAR-файлов....17
Автоконфигурация....19
Резюме....21
Глава 2. Выбираем инструменты и приступаем к работе....22
Maven или Gradle?....22
Apache Maven....22
Gradle....24
Выбор между Maven и Gradle....25
Java или Kotlin....26
Java....26
Kotlin....27
Выбор между Java и Kotlin....28
Выбираем версию Spring Boot....28
Spring Initializr....29
Прямиком из командной строки....33
Работа в интегрированных средах разработки....36
Прогулка по функции main()....38
Резюме....39
Глава 3. Создаем первый Spring Boot REST API....42
«Как» и «почему» API....42
Что такое REST и почему это важно....43
API в стиле HTTP-«глаголов»-команд....44
Возвращаемся к Initializr....45
Создание простого класса предметной области....46
GET....48
Коротко об аннотации @RestController....48
POST....52
PUT....53
DELETE....53
И не только....54
Доверяй, но проверяй....56
Резюме....59
Глава 4. Добавление в приложение Spring Boot доступа к базе данных....61
Подготовка автоконфигурации для доступа к базе данных....61
Чего мы надеемся добиться....62
Добавление зависимости для базы данных....62
Добавление кода....64
Сохранение и извлечение данных....71
Наводим лоск....75
Резюме....76
Глава 5. Настройка и контроль приложения Spring Boot....78
Конфигурация приложения....79
@Value....80
@ConfigurationProperties....85
Возможные сторонние решения....90
Отчет об автоконфигурации....93
Actuator (Актуатор)....95
Открываем доступ к актуатору....102
Лучше учитываем среду приложения с помощью актуатора....102
Регулировка уровня журналирования с помощью Actuator....105
Резюме....107
Глава 6 Займемся данными по-настоящему....108
Описание сущностей....109
Поддержка шаблонов....110
Поддержка репозиториев....110
@Before....111
Создание с помощью Redis сервиса на основе шаблона....111
Инициализация проекта....112
Разработка сервиса Redis....113
Преобразование из шаблона в репозиторий....123
Создание сервиса на основе репозитория с помощью Java Persistence API....127
Инициализация проекта....127
Разработка JPA-сервиса (MySQL)....128
Загрузка данных....133
Создание сервиса на основе репозитория с помощью документоориентированной базы данных NoSQL....138
Инициализация проекта....138
Разработка сервиса MongoDB....140
Создание сервиса на основе репозитория с помощью графовой NoSQL базы данных....146
Инициализация проекта....147
Разрабатываем сервис Neo4j....147
Резюме....158
Глава 7. Создание приложений с помощью Spring MVC....160
Что такое Spring MVC....160
Взаимодействия конечного пользователя с помощью шаблонизаторов....161
Инициализация проекта....162
Разработка приложения Aircraft Positions....163
Передача сообщений....169
Подключаем PlaneFinder....170
Расширяем приложение Aircraft Positions....175
Формирование диалогов с помощью WebSocket....180
Что такое WebSocket....181
Рефакторинг приложения Aircraft Positions....181
Резюме....189
Глава 8. Реактивное программирование: Project Reactor и Spring WebFlux....191
Введение в реактивное программирование....191
Манифест реактивных систем....192
Project Reactor....195
Tomcat и Netty....197
Реактивный доступ к данным....198
R2DBC и база данных H2....198
Реактивный Thymeleaf....211
RSocket и полностью реактивное взаимодействие между процессами....212
Что такое RSocket?....212
Применяем RSocket на практике....213
Резюме....218
Глава 9. Тестирование приложений Spring Boot для повышения их готовности к производственной эксплуатации....220
Модульное тестирование....220
Знакомимся с аннотацией @SpringBootTest....221
Важнейшие модульные тесты для приложения Aircraft Positions....222
Рефакторинг кода для лучшего тестирования....228
Тестовые срезы....236
Резюме....243
Глава 10. Безопасность приложений Spring Boot....244
Аутентификация и авторизация....244
Аутентификация....245
Авторизация....246
Коротко о Spring Security....247
HTTP-брандмауэр....247
Цепочки фильтров безопасности....247
Заголовки запросов и ответов....248
Реализация аутентификации и авторизации на основе форм с помощью Spring Security....248
Добавление зависимостей Spring Security....249
Добавляем аутентификацию....255
Авторизация....262
Реализация OpenID Connect и OAuth2 для аутентификации и авторизации....271
Клиентское приложение Aircraft Positions....273
Сервер ресурсов PlaneFinder....280
Резюме....288
Глава 11. Развертывание приложений Spring Boot....290
Возвращаемся к исполняемым JAR-файлам Spring Boot....291
Сборка «полностью исполняемого» JAR-файла Spring Boot....292
Что это нам дает....298
Разобранные JAR-файлы....298
Развертывание приложений Spring Boot в контейнерах....305
Создание образа контейнера из IDE....307
Создание образа контейнера из командной строки....309
Проверяем наличие образа....310
Запуск контейнеризованного приложения....311
Утилиты для исследования образов контейнеров приложений Spring Boot....312
Pack....312
Dive....314
Резюме....315
Глава 12. Углубляемся в реактивное программирование....316
Когда следует использовать реактивное программирование....317
Тестирование реактивных приложений....318
Но сначала — рефакторинг....319
А теперь — тестирование....326
Диагностика и отладка реактивных приложений....335
Hooks.onOperatorDebug()....336
Контрольные точки....346
ReactorDebugAgent.init()....349
Резюме....351
Об авторе....353
Об иллюстрации на обложке....354
Spring Boot, который скачивают более 75 миллионов раз в месяц, – наиболее широко используемый фреймворк Java. Его удобство и возможности совершили революцию в разработке приложений, от монолитных до микросервисов. Тем не менее простота Spring Boot может привести в замешательство. Что именно разработчику нужно изучить, чтобы сразу же выдавать результат? Это практическое руководство научит вас писать успешные приложения для критически важных задач.
Марк Хеклер из VMware, компании, создавшей Spring, проведет вас по всей архитектуре Spring Boot, охватив такие вопросы, как отладка, тестирование и развертывание. Если вы хотите быстро и эффективно разрабатывать нативные облачные приложения Java или Kotlin на базе Spring Boot с помощью реактивного программирования, создания API и доступа к разнообразным базам данных – эта книга для вас.