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