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

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

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

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

Пример:

java
// @Component
@Component
public class MyService { ... }

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

Вывод: @Component — для автоматического сканирования, @Bean — для ручного конфигурирования.

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

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

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

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