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

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

В Spring @Component и @Bean используются для создания бинов, но работают по-разному:

  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 используется, когда нужно создать бин из стороннего класса (который нельзя аннотировать)
  • @Bean позволяет настроить бин более гибко (например, задать scope или условия создания)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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