Ответ
Spring Boot Starter — это артефакт-зависимость, который инкапсулирует настройку и подключение определенной функциональности (например, безопасности, базы данных, веб). Он содержит:
pom.xmlс необходимыми транзитивными зависимостями.- Классы автоматической конфигурации (
@Configuration). - Файл
spring.factories/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports(для Spring Boot 2.7+) для регистрации автоконфигураций.
Зачем создавать свой Starter? Для централизованного и удобного подключения вашей библиотеки или модуля в другие Spring Boot приложения.
Шаги создания собственного Starter:
-
Создайте два модуля:
autoconfigure— содержит логику автоконфигурации, аннотации,@ConfigurationProperties.starter— пустой POM-модуль, который зависит отautoconfigureи всех необходимых библиотек.
-
В модуле
autoconfigure:- Создайте класс автоконфигурации с аннотациями
@Configurationи@ConditionalOnClass/@ConditionalOnProperty.@Configuration @ConditionalOnClass(MyService.class) @EnableConfigurationProperties(MyProperties.class) public class MyAutoConfiguration { @Bean @ConditionalOnMissingBean public MyService myService(MyProperties properties) { return new MyService(properties); } } - Зарегистрируйте его в файле
src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports(одна строка с полным именем класса). - Добавьте файл
spring-configuration-metadata.jsonдля поддержки подсказок вapplication.properties.
- Создайте класс автоконфигурации с аннотациями
-
В модуле
starter:- Укажите зависимость на
autoconfigureи другие необходимые библиотеки вpom.xml.
- Укажите зависимость на
Теперь пользователи могут подключить ваш функционал, добавив одну зависимость на ваш starter.