Sobes.tech
Назад к вопросам
Junior — Middle
73

В чем отличие аннотации @Bean от аннотации @Component в контексте Spring?

Компании, где спрашивали
IT Smart

Ответ от нейросети

sobes.tech AI

Аннотация @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
}