Junior
Waarvoor wordt de @Bean-annotatie gebruikt in Spring Framework?
sobes.tech AI
Antwoord van AI
De annotatie @Bean wordt in Spring gebruikt om methoden te declareren die beans (objecten die door de Spring IoC-container worden beheerd) produceren. De methode gemarkeerd met @Bean wordt door Spring uitgevoerd, en de geretourneerde waarde wordt geregistreerd als een bean in de applicatiecontext.
Belangrijkste gebruiksgevallen:
- Configuratie van externe bibliotheken: Wanneer het niet mogelijk is om Spring-annotaties (@Component, @Service, etc.) toe te passen op klassen van externe bibliotheken.
- Fijnmazige configuratie van bean-creatie: Wanneer complexe initialisatielogica vereist is, die moeilijk of onmogelijk te realiseren is met annotaties.
- Voorwaardelijke creatie van beans: Samen met de
@Conditional-annotaties om beans te maken afhankelijk van bepaalde voorwaarden.
Voorbeeld van het maken van een bean met @Bean:
// In een klasse gemarkeerd met @Configuration
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
// Complexe logica voor het maken van DataSource
return new com.zaxxer.hikari.HikariDataSource(); // Voorbeeld
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// Configuratie van RestTemplate
return builder.setConnectTimeout(Duration.ofSeconds(5))
.setReadTimeout(Duration.ofSeconds(5))
.build();
}
}
Bean's die met @Bean zijn gedeclareerd, zijn beschikbaar voor dependency injection in andere Spring-componenten. Standaard komt de naam van de bean overeen met de naam van de methode, maar deze kan expliciet worden ingesteld met de attributen name of value.
// Expliciete naam toewijzing aan de bean
@Bean(name = "myCustomRestTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// ...
return builder.build();
}