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

Почему нельзя использовать @Component с методом

@Component предназначен для классов, помечая их как кандидаты для автоматического обнаружения Spring'ом. Методы же аннотируются @Bean внутри классов с @Configuration.

Пример:

java
@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

@Component не работает с методами, потому что:

  1. Семантика: @Component обозначает класс как компонент, а @Bean — метод как фабрику бинов.
  2. Механизм сканирования: Spring сканирует классы на наличие @Component, но не методы.
  3. Гибкость: @Bean позволяет создавать бины динамически (например, через вызов другого метода или внешний API).

Использование @Component на методе просто не имеет смысла в контексте Spring DI.

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

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

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

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