Назад к вопросам
Middle
18
Писали ли кастомные Spring Boot Starters или Auto-configuration? В чём разница между Starter и Auto-configuration?
Компании, где спрашивали
Позитив Технолоджис
Ответ от нейросети
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 — логика настройки.