Где Spring Boot ищет компоненты, если нет @ComponentScan?

Это значит, что структура пакетов и расположение главного класса приложения влияют на область сканирования. Если компоненты находятся вне этого дерева пакетов, их нужно явно указать через @ComponentScan.

Короткий ответ

Что ответить на собеседовании

Если в Spring Boot-приложении не указана аннотация @ComponentScan, то фреймворк по умолчанию сканирует компоненты в том же пакете, где находится класс с аннотацией @SpringBootApplication (или @Configuration), и во всех его подпакетах.

Подробный разбор

Ответ с пояснениями

Если в Spring Boot-приложении не указана аннотация @ComponentScan, то фреймворк по умолчанию сканирует компоненты в том же пакете, где находится класс с аннотацией @SpringBootApplication (или @Configuration), и во всех его подпакетах.

Это значит, что структура пакетов и расположение главного класса приложения влияют на область сканирования. Если компоненты находятся вне этого дерева пакетов, их нужно явно указать через @ComponentScan.

Пример:

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

Здесь Spring Boot будет искать компоненты в пакете MyApplication и всех его подпакетах.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее