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