Можно ли применять аннотацию @Component к интерфейсу в рамках Spring Framework?

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

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

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

Аннотация @Component в Spring Framework предназначена для пометки классов как компонентов, которые будут автоматически обнаружены и зарегистрированы в контексте Spring (IoC контейнере). Применять @Component к интерфейсу нельзя, так как интерфейс не может быть инстанцирован, и Spring не сможет создать бин на его основе.

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

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

Аннотация @Component в Spring Framework предназначена для пометки классов как компонентов, которые будут автоматически обнаружены и зарегистрированы в контексте Spring (IoC контейнере). Применять @Component к интерфейсу нельзя, так как интерфейс не может быть инстанцирован, и Spring не сможет создать бин на его основе.

Обычно @Component ставят на классы, которые реализуют интерфейсы или сами являются компонентами. Если нужно зарегистрировать бин по интерфейсу, то это делается через класс-реализацию, а не через интерфейс.

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

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

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

Подробнее