Встречается на собеседованиях • сегодня

Как Spring определяет, какие бины нужно создать

Spring определяет бины для создания через сканирование компонентов (@ComponentScan) и явное объявление (@Bean).

  1. Сканирование компонентов:
    Spring ищет классы с аннотациями @Component, @Service, @Repository, @Controller в пакетах, указанных в @ComponentScan.
  1. Явное объявление:
    Бины могут быть определены в конфигурационных классах (@Configuration) с помощью @Bean.

  2. Условия создания:

    • @Conditional и его производные (@Profile, @ConditionalOnClass) позволяют управлять созданием бина в зависимости от условий.

Пример:

java
@Configuration
@ComponentScan("com.example")
public class AppConfig {
    @Bean
    @ConditionalOnProperty(name = "feature.enabled", havingValue = "true")
    public MyService myService() {
        return new MyService();
    }
}

Spring создаст бин MyService, только если в настройках установлено feature.enabled=true.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы