ebook img

Spring быстро PDF

448 Pages·2023·23.315 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Spring быстро

Лауренциу Спилкэ 2023 ББК 32.988.02-018 УДК 004.738.2 С72 Спилкэ Лауренциу С72 Spring быстро. — СПб.: Питер, 2023. — 448 с.: ил. ISBN 978-5-4461-1969-1 Java-программистам необходим фреймворк Spring. Этот невероятный инструмент универсален: вы можете разрабатывать как приложения для малого бизнеса, так и микросервисервисные архи- тектуры промышленного масштаба. Освоить Spring не так-то просто, но первый шаг сделать легко! Книга предназначена для Java-разработчиков, желающих создавать приложения на основе Spring. Информативные иллюстрации, понятные примеры, а также ясное и живое изложение Лауренциу Спилкэ позволят быстро овладеть необходимыми навыками. Вы научитесь планировать, разраба- тывать и тестировать приложения. Благодаря акценту на наиболее важных функциях разберетесь в богатой экосистеме фреймворка Spring. 16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ББК 32.988.02-018 УДК 004.738.2 Права на издание получены по соглашению с Manning Publications. Все права защищены. Никакая часть дан- ной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владель- цев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступ- ность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет-ресурсы были действующими. ISBN 978-1617298691 англ. © 2021 by Manning Publications Co. All rights reserved ISBN 978-5-4461-1969-1 © Перевод на русский язык ООО «Прогресс книга», 2022 © Издание на русском языке, оформление ООО «Прогресс книга», 2022 Краткое содержание Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 О .книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Об .авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Иллюстрация .на .обложке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 От .издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Часть I Основные принципы Глава 1. Spring .в .реальном .мире . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Глава 2. Контекст .Spring: .что .такое .бины . . . . . . . . . . . . . . . . . . . . . . . 50 Глава 3. Контекст .Spring: .создаем .новые .бины . . . . . . . . . . . . . . . . . . .80 Глава 4. Контекст .Spring: .использование .абстракций . . . . . . . . . . . . . . 106 Глава 5. Контекст .Spring: .области .видимости .и .жизненный .цикл .бинов . . 132 Глава 6. Аспекты .и .АОП .в .Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 6 Краткое содержание Часть II Реализация Глава 7. Введение .в .Spring .Boot .и .Spring .MVC . . . . . . . . . . . . . . . . . . 190 Глава 8. Р еализация .веб-приложений .с .использованием .Spring .Boot . . и .Spring .MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Глава 9. Области .веб-видимости .бинов .Spring . . . . . . . . . . . . . . . . . . . 241 Глава 10. Реализация .REST-сервисов . . . . . . . . . . . . . . . . . . . . . . . . 270 Глава 11. Использование .конечных .точек .REST . . . . . . . . . . . . . . . . . 293 Глава 12. Использование .источников .данных .в .Spring-приложениях . . . . 315 Глава 13. Транзакции .в .Spring-приложениях . . . . . . . . . . . . . . . . . . . 337 Глава 14. Сохранение .данных .с .помощью .Spring .Data . . . . . . . . . . . . . . 357 Глава 15. Тестирование .Spring-приложений . . . . . . . . . . . . . . . . . . . . 379 Приложение А. Архитектурные .концепции . . . . . . . . . . . . . . . . . . . . 404 Приложение Б. Использование .XML .в .конфигурации .контекста . . . . . . 418 Приложение В. Краткое .введение .в .HTTP . . . . . . . . . . . . . . . . . . . . . 420 Приложение Г. Представление .данных .в .формате .JSON . . . . . . . . . . . . 431 Приложение Д. Установка .MySQL .и .создание .базы .данных . . . . . . . . . 434 Приложение Е. Рекомендованные .инструменты . . . . . . . . . . . . . . . . . 442 Приложение Ж. М атериалы, .рекомендуемые .для .дальнейшего . . изучения .Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 Оглавление Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 О .книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Кто .должен .прочитать .эту .книгу . . . . . . . . . . . . . . . . . . . . . . . . . .21 Структура .издания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 О .коде . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Об .авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Иллюстрация .на .обложке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 От .издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Часть I Основные принципы Глава 1. Spring .в .реальном .мире . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1 1 .Зачем .нужны .фреймворки . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1 2 .Экосистема .Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1 2 1 .Spring .Core .вблизи: .ядро .Spring . . . . . . . . . . . . . . . . . . . .34 1 2 2 .Сохранение .данных .приложения . . с .помощью .Spring .Data .Access . . . . . . . . . . . . . . . . . . . . . . . . . 36 8 Оглавление 1 2 3 .Возможности .Spring .MVC .для .разработки . . веб-приложений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 1 2 4 .Тестирование .в .Spring . . . . . . . . . . . . . . . . . . . . . . . . . .36 1 2 5 .Проекты .на .базе .экосистемы .Spring . . . . . . . . . . . . . . . . . . 37 1 3 .Spring .в .реальных .задачах . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1 3 1 .Использование .Spring .для .разработки . . серверных .приложений . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 1 3 2 .Использование .Spring .для .средств . . автоматизации .тестирования . . . . . . . . . . . . . . . . . . . . . . . . . . 41 1 3 3 .Использование .Spring .для .разработки . . десктопных .приложений . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 1 3 4 .Использование .Spring .в .мобильных .приложениях . . . . . . . .44 1 4 .Когда .не .стоит .использовать .фреймворки . . . . . . . . . . . . . . . . . . 44 1 4 1 .Приложение .должно .занимать .как .можно .меньше .места . . . . . 45 1 4 2 .Безопасность .требует .написать .весь .код .самостоятельно . . . .45 1 4 3 .Использовать .фреймворк .нецелесообразно .из-за .слишком . большого .количества .настроек . . . . . . . . . . . . . . . . . . . . . . . . . 46 1 4 4 .Когда .переход .на .фреймворк .не .приносит .пользы . . . . . . . . . 46 1 5 .Чему .вы .научитесь, .прочитав .эту .книгу . . . . . . . . . . . . . . . . . . .48 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 Глава 2. Контекст .Spring: .что .такое .бины . . . . . . . . . . . . . . . . . . . . . . . 50 2 1 .Создание .проекта .Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2 2 .Добавление .бинов .в .контекст .Spring . . . . . . . . . . . . . . . . . . . . .57 2 2 1 .Добавление .бинов .в .контекст .Spring . . с .помощью .аннотации .@Bean . . . . . . . . . . . . . . . . . . . . . . . . .61 2 2 2 .Добавление .бинов .в .контекст .Spring . . с .помощью .стереотипных .аннотаций . . . . . . . . . . . . . . . . . . . . .70 2 2 3 .Программное .добавление .бинов .в .контекст .Spring . . . . . . . .75 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 Глава 3. Контекст .Spring: .создаем .новые .бины . . . . . . . . . . . . . . . . . . .80 3 1 .Установка .связей .между .бинами, .описанными . . в .файле .конфигурации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 3 1 1 .Монтаж .бинов .путем .прямого .вызова .одного .метода . с .аннотацией .@Bean .из .другого .такого .же .метода . . . . . . . . . . . . . 85 Оглавление 9 3 1 2 .Монтаж .бинов .путем .передачи .параметра .в .метод . . с .аннотацией .@Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 3 2 .Внедрение .бинов .с .помощью .аннотации .@Autowired . . . . . . . . . . . 91 3 2 1 .Внедрение .значений .через .поля .класса .с .использованием . аннотации .@Autowired . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92 3 2 2 .Использование .аннотации .@Autowired .для .внедрения . . значения .через .конструктор . . . . . . . . . . . . . . . . . . . . . . . . . .95 3 2 3 .Внедрение .зависимости .через .сеттер . . . . . . . . . . . . . . . . . 96 3 3 .Циклические .зависимости . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 3 4 .Выбор .из .нескольких .бинов .в .контексте .Spring . . . . . . . . . . . . . .99 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Глава 4. Контекст .Spring: .использование .абстракций . . . . . . . . . . . . . . 106 4 1 .Применение .интерфейсов .для .определения .контрактов . . . . . . . . 107 4 1 1 .Использование .интерфейсов .для .разделения .реализаций . . . 107 4 1 2 .Условия .задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4 1 3 .Реализация .сценариев .использования .без .применения . фреймворка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4 2 .Использование .внедрения .зависимостей .для .абстракций . . . . . . . 117 4 2 1 .Выбор .объектов .для .добавления . . в .контекст .Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4 2 2 .Выбор .одной .из .реализаций .абстракции .для .автомонтажа . . 123 4 3 .Подробнее .об .обязанностях .объектов .со .стереотипными . . аннотациями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Глава 5. Контекст .Spring: .области .видимости .и .жизненный .цикл .бинов . . 132 5 1 .Использование .одиночной .области .видимости . . . . . . . . . . . . . . 133 5 1 1 .Что .такое .одиночный .бин . . . . . . . . . . . . . . . . . . . . . . . 133 5 1 2 .Одиночные .бины .в .реальных .приложениях . . . . . . . . . . . . 141 5 1 3 .Немедленное .и .«ленивое» .создание .экземпляров . . . . . . . . 143 5 2 .Прототипная .область .видимости .бинов . . . . . . . . . . . . . . . . . . 145 5 2 1 .Как .работают .прототипные .бины . . . . . . . . . . . . . . . . . . 146 5 2 2 .Практическое .применение .прототипных .бинов . . . . . . . . . 150 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 10 Оглавление Глава 6. Аспекты .и .АОП .в .Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 6 1 .Аспекты .в .Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6 2 .Реализация .аспектов .в .Spring .с .помощью .АОП . . . . . . . . . . . . . 162 6 2 1 .Реализация .простого .аспекта . . . . . . . . . . . . . . . . . . . . . 162 6 2 2 .Изменение .параметров .и .возвращаемого .значения . перехваченного .метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6 2 3 .Перехват .методов .с .аннотациями . . . . . . . . . . . . . . . . . . 176 6 2 4 .Другие .полезные .аннотации .советов . . . . . . . . . . . . . . . . 180 6 3 .Цепочки .выполнения .аспектов . . . . . . . . . . . . . . . . . . . . . . . . 181 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Часть II Реализация Глава 7. Введение .в .Spring .Boot .и .Spring .MVC . . . . . . . . . . . . . . . . . . 190 7 1 .Что .такое .веб-приложение . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 7 1 1 .Основные .сведения .о .веб-приложениях . . . . . . . . . . . . . . 192 7 1 2 .Способы .реализации .веб-приложений .на .основе .Spring . . . . 193 7 1 3 .Использование .контейнера .сервлетов .в .веб-разработке . . . . 196 7 2 .Магия .Spring .Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 7 2 1 .Создание .проекта .Spring .Boot .с .помощью .сервиса . инициализации .проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 7 2 2 .Упрощенное .управление .зависимостями . . с .помощью .диспетчеров .зависимостей . . . . . . . . . . . . . . . . . . . 206 7 2 3 .Автоматическая .конфигурация .по .соглашению . . на .основе .зависимостей . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 7 3 .Реализация .приложения .с .помощью .Spring .MVC . . . . . . . . . . . . 208 Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Глава 8. Реализация .веб-приложений .с .использованием .Spring .Boot . . и .Spring .MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 8 1 .Создание .веб-приложений .с .динамическими . . представлениями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 8 1 1 .Получение .данных .из .HTTP-запроса . . . . . . . . . . . . . . . . 222 8 1 2 .Передача .данных .от .клиента .серверу .посредством . . параметров .запроса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.