Sobes.tech
Junior — Middle

Spring'da @Bean va @Component annotatsiyalari o'rtasidagi farq nima va qaysi hollarda foydalanish kerak?

sobes.tech AI

AIdan javob

@Component аннотациясы компонент сканирлөө аркылуу класс автоматтык түрдө Spring-бийине аныкталып жана катталуусуна колдонулат. Ал түздөн-түз класстын үстүнө колдонулат жана класстын бийин болушу керек.

@Bean аннотациясы конфигурацияланган (@Configuration) класстагы методго колдонулат. Бул метод Spring тарабынан бийин катары катталуучу объектти кайтарат.

Негизги айырмачылыктар:

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

Кайсы учурда колдонуу керек:

  • @Component — класс өзү компонент болуп, автоматтык түрдө табылса.
  • @Bean — сырттан келген классынан бийин түзүү керек болсо же объект түзүүдө көбүрөөк логика талап кылынса.

Мисал:

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

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