Junior — Middle
Koja je razlika između anotacija @Bean i @Component u Spring-u i u kojim situacijama se koriste?
sobes.tech АИ
Одговор од АИ
U Spring-u, @Component i @Bean se koriste za kreiranje i registraciju beana, ali se razlikuju po primeni i kontekstu.
-
@Componentje anotacija klase. Ona ukazuje da je klasa Spring komponenta i da treba da bude automatski prepoznata tokom skeniranja komponenti (component scanning). Koristi se za klase koje Spring treba da kreira i upravlja njima. -
@Beanje anotacija na metodu unutar klase označene sa@Configuration. Metoda sa@Beanvraća objekat koji će biti registrovan kao bean u Spring kontekstu. Koristi se za kreiranje beana kada je potrebno više eksplicitne kontrole nad kreiranjem ili konfiguracijom objekta.
Kada koristiti:
@Component— kada je klasu moguće jednostavno označiti i dozvoliti Spring-u da automatski kreira bean.@Bean— kada je potrebno kreirati bean pomoću fabričke metode, na primer za spoljne klase ili složenu inicijalizaciju.
Primer:
@Component
public class MyService {
// Spring će automatski kreirati ovaj bean
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepositoryImpl();
}
}