Junior — Middle
Koja je razlika između anotacije @Bean i anotacije @Component u kontekstu Spring?
sobes.tech АИ
Одговор од АИ
Аннотация @Component используется для автоматического обнаружения и регистрации класса как Spring bean через механизм сканирования компонентов. Она применяется к классам, которые должны быть управляемыми Spring-контейнером.
Аннотация @Bean применяется к методам внутри класса, помеченного, например, @Configuration, и указывает, что возвращаемый этим методом объект должен быть зарегистрирован как bean в контексте Spring.
Основные отличия:
- @Component — ставится на класс, чтобы Spring автоматически создал bean этого класса.
- @Bean — ставится на метод, который вручную создает и возвращает bean.
Пример:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
@Component
public class MyComponent {
// Этот класс автоматически станет bean
}