Sobes.tech
Back to questions
Middle
17

Писали ли кастомные Spring Boot Starters или Auto-configuration? В чём разница между Starter и Auto-configuration?

Companies where asked
Позитив Технолоджис

Answer from AI

sobes.tech AI

Spring Boot Starter — это набор зависимостей (обычно в виде Maven/Gradle артефакта), который упрощает подключение функционала в проект. Стартеры собирают в себе нужные библиотеки и конфигурации для определённой задачи (например, spring-boot-starter-web).

Auto-configuration — это механизм автоматической настройки Spring контекста на основе наличия определённых классов, свойств и условий. Auto-configuration реализуется в виде классов с аннотацией @Configuration и условными аннотациями (@ConditionalOnClass, @ConditionalOnProperty и т.д.).

Разница:

  • Стартеры — это способ собрать зависимости и включить auto-configuration.
  • Auto-configuration — это код, который автоматически настраивает бины и параметры при старте приложения.

При написании кастомного стартерa вы обычно создаёте:

  • Maven/Gradle модуль с зависимостями.
  • Класс auto-configuration, который настраивает бины.
  • Файл spring.factories, который регистрирует auto-configuration.

Таким образом, стартер — это упаковка, а auto-configuration — логика настройки.