Sobes.tech
Junior — Middle
95

Ի՞նչ տարբերություն կա @Component նշանառության և Spring-ում բին ստեղծելու միջև։

Ընկերությունները, որտեղ հարցրել են
СБЕР КорпусСБЕР Корпус

Պատասխան AI-ից

sobes.tech AI

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