Sobes.tech
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.

  • @Component je 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.

  • @Bean je anotacija na metodu unutar klase označene sa @Configuration. Metoda sa @Bean vrać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();
    }
}
Koja je razlika između anotacija @Bean i @Component u… - sobes.tech