Назад к вопросам
СБЕР
Senior
4
В чём отличие аннотации @Bean от @Component?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Аннотация @Component используется для автоматического обнаружения и регистрации класса как Spring bean при сканировании компонентов (component scanning). Это означает, что Spring сам создаст экземпляр класса и управляет его жизненным циклом.
Аннотация @Bean применяется к методам внутри конфигурационных классов (@Configuration). Она указывает, что метод возвращает объект, который должен быть зарегистрирован как bean в контексте Spring. В отличие от @Component, @Bean позволяет явно создавать и настраивать bean, например, создавать сторонние объекты или настраивать их параметры.
Пример:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
@Component
public class MyComponent {
// Этот класс будет автоматически зарегистрирован как bean
}
Итого:
@Component— автоматическая регистрация класса как bean при сканировании.@Bean— явное создание bean через метод в конфигурационном классе.