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();
}
}