Sobes.tech
Junior — Middle
105

Koja je razlika između anotacije @Component i kreiranja beana u Springu?

Компаније где су питане
СБЕР КорпусСБЕР Корпус

Одговор од АИ

sobes.tech АИ

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