Можно ли назвать весь Spring Boot просто «стартером» (Starter)?

«Можно ли назвать весь Spring Boot просто «стартером» (Starter)?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, это неверно. Spring Boot — это полноценный фреймворк, а Spring Boot Starters — лишь одна из его удобных архитектурных компонент.

Spring Boot Starter — это специальный артефакт Maven/Gradle, который:

  • Содержит набор зависимостей, необходимых для работы с определенной технологией (JPA, Web, Security).
  • Предоставляет готовую конфигурацию по умолчанию (auto-configuration).

Spring Boot — это надстройка над Spring, которая включает:

  1. Автоконфигурацию: @EnableAutoConfiguration автоматически настраивает бины на основе classpath.
  2. Standalone-приложения: Встроенные веб-серверы (Tomcat, Jetty, Undertow).
  3. Управление конфигурацией: Файлы application.properties/application.yml, профили.
  4. Actuator: Готовые endpoints для мониторинга и управления приложением.
  5. Инструменты разработки: DevTools для горячей перезагрузки.

Аналогия:

  • Starter (spring-boot-starter-web) — это "коробка с деталями" для сборки веб-модуля.
  • Spring Boot — это весь "завод" с конвейером (автоконфигурация), упаковщиком (executable JAR) и службой контроля качества (Actuator).

Пример pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId> <!-- Только Starter -->
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

Запускается же все приложение через @SpringBootApplication, который является точкой входа во весь фреймворк Spring Boot.