Почему, при использовании аннотации @Component, экземпляр класса не создается автоматически?

Аннотация @Component в Spring указывает, что класс является кандидатом для автоматического обнаружения и регистрации в контексте Spring как bean.

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

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

Аннотация @Component в Spring указывает, что класс является кандидатом для автоматического обнаружения и регистрации в контексте Spring как bean. Однако сам по себе @Component не создаёт экземпляр класса автоматически — для этого необходимо, чтобы класс находился в пакете, который сканируется Spring (через @ComponentScan или конфигурацию). Если пакет не сканируется, Spring не узнает о классе и не создаст bean.

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

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

Аннотация @Component в Spring указывает, что класс является кандидатом для автоматического обнаружения и регистрации в контексте Spring как bean. Однако сам по себе @Component не создаёт экземпляр класса автоматически — для этого необходимо, чтобы класс находился в пакете, который сканируется Spring (через @ComponentScan или конфигурацию). Если пакет не сканируется, Spring не узнает о классе и не создаст bean.

Также важно, чтобы контекст Spring был правильно инициализирован (например, через AnnotationConfigApplicationContext или в Spring Boot). Если контекст не запущен или сканирование не настроено, экземпляр не создастся.

Итого, @Component — это лишь маркер для Spring, а создание экземпляра зависит от конфигурации сканирования и запуска контекста.

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

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

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

Подробнее