Sobes.tech
Junior — Middle

Фарқи байни ёддоштҳои @Bean ва @Component дар Spring чист, ва дар кадом ҳолатҳо бояд истифода шаванд?

sobes.tech AI

Ҷавоб аз AI

Знак @Component се използва за автоматично откриване и регистрация на класа като Spring-бийн чрез сканиране на компоненти (component scanning). Той се прилага директно върху класа, който трябва да стане бийн.

Знакът @Bean се прилага върху метод в клас, маркиран като @Configuration. Този метод връща обект, който Spring ще регистрира като бийн.

Основни разлики:

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

Кога да се използва:

  • @Component — когато класът сам по себе си е компонент и може да бъде автоматично намерен.
  • @Bean — когато е необходимо да се създаде бийн от външна класа или когато е необходима по-сложна логика за създаване на обекта.

Пример:

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

@Configuration
public class AppConfig {
    @Bean
    public MyRepository myRepository() {
        return new MyRepository();
    }
}