Sobes.tech
Junior — Middle

Aký je rozdiel medzi anotáciami @Bean a @Component v Spring, a v ktorých prípadoch ich použiť?

sobes.tech AI

Odpoveď od AI

Anotácia @Component sa používa na automatické rozpoznanie a registráciu triedy ako Spring-bean prostredníctvom skenovania komponentov (component scanning). Priama aplikácia na triedu, ktorá má byť beanom.

Anotácia @Bean sa aplikuje na metódu v rámci triedy označenej ako @Configuration. Táto metóda vracia objekt, ktorý Spring zaregistruje ako bean.

Hlavné rozdiely:

  • @Component — pre triedy, ktoré sú automaticky rozpoznané skenovaním.
  • @Bean — na manuálne vytvorenie beanu v konfiguračnej triede.

Kedy použiť:

  • @Component — keď je trieda sama o sebe komponentou a môže byť automaticky nájdená.
  • @Bean — keď je potrebné vytvoriť bean z externej triedy alebo keď je požadovaná zložitejšia logika tvorby objektu.

Príklad:

@Component
public class MyService {
    // ...
}

@Configuration
public class AppConfig {
    @Bean
    public MyRepository myRepository() {
        return new MyRepository();
    }
}