Junior — Middle
Care este diferența dintre adnotările @Bean și @Component în Spring, și în ce cazuri trebuie utilizate?
sobes.tech AI
Răspuns de la AI
A adnotarea @Component este utilizată pentru detectarea și înregistrarea automată a clasei ca bean Spring prin scanarea componentelor (component scanning). Se aplică direct peste clasa care trebuie să devină bean.
Adnotarea @Bean se aplică peste o metodă dintr-o clasă marcată ca @Configuration. Această metodă returnează un obiect pe care Spring îl va înregistra ca bean.
Diferențele principale:
@Component— pentru clase detectate automat prin scanare.@Bean— pentru crearea manuală a unui bean într-o clasă de configurare.
Când să folosiți:
@Component— când clasa în sine este un component și poate fi găsit automat.@Bean— când trebuie creat un bean dintr-o clasă externă sau când este nevoie de o logică mai complexă pentru crearea obiectului.
Exemplu:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}