Junior
À quoi sert l'annotation @Bean dans Spring Framework?
sobes.tech IA
Réponse de l'IA
L'annotation @Bean est utilisée dans Spring pour déclarer des méthodes qui produisent des beans (objets gérés par le conteneur IoC de Spring). La méthode marquée avec @Bean est exécutée par Spring, et sa valeur de retour est enregistrée comme un bean dans le contexte de l'application.
Principaux cas d'utilisation :
- Configuration de bibliothèques tierces : Lorsqu'il n'est pas possible d'appliquer des annotations Spring (@Component, @Service, etc.) aux classes de bibliothèques tierces.
- Configuration fine de la création de beans : Lorsqu'une logique d'initialisation complexe est requise, difficile ou impossible à réaliser avec des annotations.
- Création conditionnelle de beans : Avec les annotations
@Conditionalpour créer des beans en fonction de certaines conditions.
Exemple de création de bean avec @Bean :
// Dans une classe annotée avec @Configuration
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
// Logique complexe de création de DataSource
return new com.zaxxer.hikari.HikariDataSource(); // Exemple
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// Configuration de RestTemplate
return builder.setConnectTimeout(Duration.ofSeconds(5))
.setReadTimeout(Duration.ofSeconds(5))
.build();
}
}
Les beans déclarés avec @Bean sont accessibles pour l'injection (dependency injection) dans d'autres composants Spring. Par défaut, le nom du bean correspond au nom de la méthode, mais il peut être défini explicitement avec l'attribut name ou value.
// Définition explicite du nom du bean
@Bean(name = "myCustomRestTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// ...
return builder.build();
}