Junior — Middle
Kāda ir atšķirība starp @Bean un @Component anotācijām Spring, un kādos gadījumos tās jālieto?
sobes.tech AI
Atbilde no AI
@Component anotācija tiek izmantota, lai automātiski atpazītu un reģistrētu klasi kā Spring-žetonu, izmantojot komponentu skenēšanu (component scanning). Tā tiek tieši piemērota klasei, kas jāpadara par žetonu.
@Bean anotācija tiek piemērota metodē, kas atrodas @Configuration marķētā klasē. Šī metode atgriež objektu, ko Spring reģistrēs kā žetonu.
Galvenās atšķirības:
@Component— automātiski atpazīstamas skenēšanas laikā.@Bean— manuāli izveidots žetons konfigurācijas klasē.
Kad lietot:
@Component— kad klase pati ir komponenta un var tikt automātiski atrasta.@Bean— kad nepieciešams izveidot žetonu no ārējās klases vai ja nepieciešama sarežģītāka objekta izveides loģika.
Piemērs:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}