Является ли произвольный JAR-файл Spring Boot стартером?

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

Ответ

Нет. Простой JAR-файл со скопированным модулем не является Spring Boot стартером.

Стартер — это специальный JAR, который предоставляет:

  1. Автоконфигурацию: Зависимость spring-boot-autoconfigure для автоматической настройки компонентов.
  2. Метаданные: Файлы в META-INF/spring/ (например, spring.factories или org.springframework.boot.autoconfigure.AutoConfiguration.imports), которые указывают Spring Boot на классы конфигурации для автоматического подключения.
  3. Управление зависимостями: Транзитивные зависимости, необходимые для работы с определенной технологией (например, JDBC, JPA, Redis).

Пример объявления стартера (Maven):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Без этих элементов JAR остается обычной библиотекой, которую нужно настраивать вручную.