Senior
25
@Bean аннотациясы мен @Component арасындағы айырмашылық қандай?
Сұралған компаниялар
AI-дан жауап
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 через метод в конфигурационном классе.