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

В чем разница между @Component и @Bean

@Component и @Bean — оба используются для создания Spring-бинов, но есть ключевые различия:

  1. Область применения:
    • @Component — аннотация уровня класса (ставится над классом).
    • @Bean — аннотация уровня метода (используется в конфигурационных классах с @Configuration).
  1. Гибкость:
    • @Component автоматически обнаруживается при сканировании компонентов (@ComponentScan).
    • @Bean позволяет создавать бины программно, например, для сторонних классов или сложной логики инициализации.

Пример:

java
@Component
public class MyComponent { ... }

@Configuration
public class AppConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

Когда использовать:

  • @Component — для своих классов.
  • @Bean — когда нужно тонко управлять созданием бина (например, для библиотечных классов).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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