Sobes.tech
Назад к вопросам
Senior
6

Доводилось ли писать собственные стартеры для Spring Boot? Расскажи про conditional аннотации.

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Spring Boot можно создавать собственные стартеры — это специальные артефакты, которые упрощают подключение и конфигурацию определённых библиотек или функционала. Стартеры обычно содержат набор зависимостей и автоконфигурацию.

Для создания собственного стартера нужно:

  • Создать отдельный Maven/Gradle модуль.
  • Включить в него необходимые зависимости.
  • Реализовать автоконфигурацию с помощью классов, аннотированных @Configuration и @Conditional.

Conditional аннотации позволяют включать или отключать конфигурацию в зависимости от условий. В Spring Boot есть несколько таких аннотаций, например:

  • @ConditionalOnProperty — конфигурация активируется, если задано определённое свойство в application.properties.
  • @ConditionalOnClass — если в classpath присутствует указанный класс.
  • @ConditionalOnMissingBean — если в контексте отсутствует бин определённого типа.
  • @ConditionalOnBean — если в контексте уже есть бин определённого типа.

Пример использования:

@Configuration
@ConditionalOnClass(name = "com.example.SomeLibrary")
public class MyAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public MyService myService() {
        return new MyService();
    }
}

Таким образом, conditional аннотации позволяют гибко управлять автоконфигурацией, делая стартеры адаптивными к окружению и зависимостям.