Sobes.tech
Junior — Middle

Wat is het verschil tussen de annotaties @Bean en @Component in Spring, en in welke gevallen moeten ze worden gebruikt?

sobes.tech AI

Antwoord van AI

De annotatie @Component wordt gebruikt voor het automatisch detecteren en registreren van de klasse als een Spring-bean via component scanning. Het wordt direct boven de klasse toegepast die een bean moet worden.

De annotatie @Bean wordt toegepast op een methode binnen een klasse gemarkeerd als @Configuration. Deze methode retourneert een object dat Spring zal registreren als een bean.

Belangrijkste verschillen:

  • @Component — voor klassen die automatisch worden gedetecteerd via scanning.
  • @Bean — voor het handmatig maken van een bean in een configuratieklasse.

Wanneer gebruiken:

  • @Component — wanneer de klasse zelf een component is en automatisch kan worden gevonden.
  • @Bean — wanneer een bean moet worden gemaakt uit een externe klasse of wanneer complexere logica nodig is voor het maken van het object.

Voorbeeld:

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

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