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