Spring Boot

Spring Boot — фреймворк с открытым исходным кодом для языка Java, используемый для создания автономных, готовых к промышленной эксплуатации приложений на базе Spring с помощью набора библиотек, упрощающих запуск и управление проектом[1]. Представляет собой расширение Spring Framework, использующее принцип «конфигурация по соглашению», чтобы минимизировать ручные настройки при создании приложений на базе Spring. При необходимости приложение можно доработать под конкретные задачи, однако стартовый проект Spring Boot предоставляет заранее настроенное окружение с наилучшей конфигурацией по мнению разработчиков как для самой платформы Spring, так и для ряда сторонних библиотек.

Spring Boot применяется для создания микросервисов, веб-приложений и консольных приложений[1].[2]

Общие сведения
Spring Boot
Тип фреймворк для приложений
Автор Род Джонсон
Разработчик VMware
Написана на Java
Первый выпуск апрель 2014
Последняя версия 4.0.3 (19 февраля 2026)
Репозиторий github.com/spring-projec…
Лицензия Apache License 2.0
Сайт spring.io

Возможности

  • Встраиваемые веб-серверы: Tomcat, Jetty или Undertow[3].
  • Предлагает наборы «стартовых» зависимостей POM для сборочных инструментов. Поддерживаются только Maven и Gradle[4].[5]
  • Автоматическая настройка Spring-приложения[6].
  • Продакшн-функциональность, включая метрики, проверки работоспособности и внешние конфигурации[7].
  • Не требует генерации кода[3].
  • Не требует конфигурации через XML[4].
  • Опциональная поддержка Kotlin и Apache Groovy помимо Java[1].[8]

Загрузка DispatcherServlet

См. также: Spring Framework#Конфигурация DispatcherServlet

Spring Boot не требует ручной настройки DispatcherServlet, поскольку приложение автоматически конфигурируется на основе найденных параметров[9].

SpringBootServletInitializer

Во фреймворке предусмотрен класс SpringBootServletInitializer, специализация WebApplicationInitializer[9]. Это готовая реализация класса WebApplicationInitializer, что избавляет разработчика от необходимости создавать собственную реализацию[9].

Конфигурационные свойства

Параметры конфигурации приложения Spring Boot можно задать в файле application.properties или application.yml[9]. Например, можно указывать свойства server.port и spring.application.name[9].

Автонастройка

@SpringBootApplication

Spring Boot предоставляет аннотацию @SpringBootApplication, которая позволяет автоконфигурировать сторонние библиотеки и автоматически обнаруживаемые функции на classpath[9]. Класс с аннотацией @SpringBootApplication может также расширять SpringBootServerInitializer, если приложение развёртывается как WAR-файл[9].

Аннотация @SpringBootApplication объединяет три специальные аннотации Spring: @SpringBootConfiguration, @EnableAutoConfiguration и @ComponentScan[10].

@SpringBootConfiguration

Аннотация @SpringBootConfiguration является специализацией аннотации @Configuration, используемой в Spring[10]. Класс, помеченный этой аннотацией, считается основным классом конфигурации для приложения Spring Boot[10].

@EnableAutoConfiguration

Аннотация @EnableAutoConfiguration включает механизм автоматической настройки Spring Boot[10].

Actuator

Модуль Spring Boot Actuator предоставляет средства мониторинга и управления приложением[11]. Он реализует ряд готовых к использованию возможностей для промышленной эксплуатации без необходимости самостоятельной разработки их реализации[11].

Если для сборки используется Maven, зависимость spring-boot-starter-actuator может быть указана в конфигурационном файле pom.xml[12].

Интеграция с модулями Spring Framework

Spring Boot поддерживает интеграцию со множеством модулей Spring Framework.

Spring Security

Фреймворк поддерживает интеграцию с модулем Spring Security. Проще всего добавить интеграцию с помощью соответствующей стартовой зависимости в файле сборки[13]. Для Maven это зависит от объявления зависимости с идентификатором spring-boot-starter-security в pom.xml[13].

Серверы приложений

По умолчанию Spring Boot предоставляет встроенные веб-серверы (например, Tomcat)[14]. Также приложения могут развёртываться как WAR-файлы на независимых серверах приложений, например WildFly[15]. Для сборки с помощью Maven существует плагин wildfly-maven-plugin для автоматического деплоя собранного WAR-файла[15].

Примечания

  1. 1 2 3 Spring Boot Tutorial — Learn Spring Boot (англ.). GeeksforGeeks (8 мая 2023). Дата обращения: 5 апреля 2024. Архивировано 10 апреля 2025 года.
  2. Spring Boot Console Application. Baeldung (8 января 2024). Дата обращения: 20 сентября 2024. Архивировано 20 января 2024 года.
  3. 1 2 Walls, Craig. Spring Boot in Action. — Manning Publications, 2016-01-03. — ISBN 978-1-61729-254-5.
  4. 1 2 Walls, Craig. Spring Boot in Action. — Manning Publications, 2016-01-03. — ISBN 978-1-61729-254-5.
  5. Musib, Somnath. Spring Boot in Practice. — Simon and Schuster, 2022-07-12. — ISBN 978-1-61729-881-3.
  6. Walls, Craig. Spring Boot in Action. — Manning Publications, 2016-01-03. — ISBN 978-1-61729-254-5.
  7. Walls, Craig. Spring Boot in Action. — Manning Publications, 2016-01-03. — ISBN 978-1-61729-254-5.
  8. Language Support. Spring Framework. Архивировано 16 сентября 2025 года.
  9. 1 2 3 4 5 6 7 Deinum, Marten. Pro Spring MVC with WebFlux / Marten Deinum, Iuliana Cosmina. — Apress, 2021. — ISBN 978-1-4842-5665-7.
  10. 1 2 3 4 Walls, Craig. Spring in Action. — Manning Publications, 2019. — ISBN 978-1-61729-494-5.
  11. 1 2 Musib, Somnath. Spring Boot in Practice. — Simon and Schuster, 2022-07-12. — ISBN 978-1-61729-881-3.
  12. Musib, Somnath. Spring Boot in Practice. — Simon and Schuster, 2022-07-12. — ISBN 978-1-61729-881-3.
  13. 1 2 Musib, Somnath. Spring Boot in Practice. — Simon and Schuster, 2022-07-12. — ISBN 978-1-61729-881-3.
  14. Musib, Somnath. Spring Boot in Practice. — Simon and Schuster, 2022-07-12. — ISBN 978-1-61729-881-3.
  15. 1 2 Musib, Somnath. Spring Boot in Practice. — Simon and Schuster, 2022-07-12. — ISBN 978-1-61729-881-3.

Ссылки