Sobes.tech
Junior — Middle
101

Quelle est la différence entre l'annotation @Component et la création d'un bean dans Spring?

Entreprises à qui on a demandé
СБЕР КорпусСБЕР Корпус

Réponse de l'IA

sobes.tech IA

Аннотация @Component в Spring используется для автоматического обнаружения и регистрации класса как Spring-бина при сканировании компонентов (component scanning). Это декларативный способ указать, что класс должен быть управляемым Spring-контейнером.

Создание бина в Spring можно делать и явно, например, через метод с аннотацией @Bean в классе конфигурации. Такой способ более явный и даёт полный контроль над созданием и конфигурацией бина.

Основные отличия:

  • @Component — автоматическое создание бина при сканировании, удобно для простых случаев.
  • @Bean — явное создание бина в конфигурационном классе, подходит для сложной логики создания или внешних классов.

Пример с @Component:

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

Пример с @Bean:

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