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();
}
}