Junior — Middle
Jaký je rozdíl mezi anotacemi @Bean a @Component ve Springu, a kdy je použít?
sobes.tech AI
Odpověď od AI
Anotace @Component se používá k automatickému rozpoznání a registraci třídy jako Spring-bean prostřednictvím skenování komponent (component scanning). Přímo se aplikuje na třídu, která má být beanem.
Anotace @Bean se aplikuje na metodu uvnitř třídy označené jako @Configuration. Tato metoda vrací objekt, který Spring zaregistruje jako bean.
Hlavní rozdíly:
@Component— pro třídy, které jsou automaticky rozpoznány skenováním.@Bean— pro ruční vytvoření beanu v konfigurační třídě.
Kdy používat:
@Component— když je třída sama o sobě komponentou a může být automaticky nalezena.@Bean— když je potřeba vytvořit bean z externí třídy nebo když je požadována složitější logika tvorby objektu.
Příklad:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}