Junior — Middle
Was ist der Unterschied zwischen den Annotationen @Bean und @Component in Spring, und in welchen Fällen sollten sie verwendet werden?
sobes.tech KI
Antwort von AI
Die Annotation @Component wird verwendet, um eine Klasse automatisch als Spring-Bean zu erkennen und zu registrieren, durch Komponenten-Scanning. Sie wird direkt über der Klasse angewendet, die zu einer Bean werden soll.
Die Annotation @Bean wird auf eine Methode innerhalb einer als @Configuration gekennzeichneten Klasse angewendet. Diese Methode gibt ein Objekt zurück, das Spring als Bean registriert.
Hauptunterschiede:
@Component— für Klassen, die automatisch durch Scannen erkannt werden.@Bean— um eine Bean manuell in einer Konfigurationsklasse zu erstellen.
Wann verwenden:
@Component— wenn die Klasse selbst ein Komponent ist und automatisch gefunden werden kann.@Bean— wenn eine Bean aus einer externen Klasse erstellt werden soll oder wenn eine komplexere Logik zur Objekterstellung erforderlich ist.
Beispiel:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}