Junior — Middle
Koja je razlika između anotacija @Bean i @Component u Springu, i u kojim slučajevima ih treba koristiti?
sobes.tech АИ
Одговор од АИ
Oznaka @Component koristi se za automatsko prepoznavanje i registraciju klase kao Spring-bina putem skeniranja komponenti (component scanning). Direktno se primenjuje na klasu koja treba da postane bin.
Oznaka @Bean primenjuje se na metodu unutar klase označene kao @Configuration. Ova metoda vraća objekat koji će Spring registrovati kao bin.
Glavne razlike:
@Component— za klase koje se automatski prepoznaju putem skeniranja.@Bean— za ručno kreiranje beana u konfiguracionoj klasi.
Kada koristiti:
@Component— kada je klasa sama po sebi komponenta i može biti automatski pronađena.@Bean— kada je potrebno kreirati bin iz spoljne klase ili kada je potrebna složenija logika za kreiranje objekta.
Primer:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}