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

В чем разница между аннотациями @Bean и @Component в Spring

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

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

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

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

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

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

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