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

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

@Bean и @Component — это аннотации Spring для создания бинов, но их использование различается:

  1. @Component
    • Используется на уровне класса (класс помечается как компонент).
    • Spring автоматически обнаруживает и регистрирует его в контексте при сканировании (@ComponentScan).
    • Пример:
      java
      @Component
      public class MyService { ... }
  1. @Bean
    • Используется в методах конфигурационных классов (@Configuration).
    • Позволяет создавать бины вручную, особенно для сторонних классов или сложной логики инициализации.
    • Пример:
      java
      @Configuration
      public class AppConfig {
          @Bean
          public DataSource dataSource() {
              return new HikariDataSource();
          }
      }

Ключевые отличия:

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

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

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

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