Junior — Middle
Quelle est la différence entre les annotations @Bean et @Component dans Spring, et dans quels cas doivent-elles être utilisées?
sobes.tech IA
Réponse de l'IA
L'annotation @Component est utilisée pour détecter et enregistrer automatiquement la classe en tant que bean Spring via la détection de composants (component scanning). Elle est appliquée directement sur la classe qui doit devenir un bean.
L'annotation @Bean est appliquée sur une méthode dans une classe marquée comme configuration (@Configuration). Cette méthode retourne un objet que Spring enregistrera en tant que bean.
Principales différences :
@Component— pour les classes détectées automatiquement via la détection.@Bean— pour créer manuellement un bean dans une classe de configuration.
Quand l'utiliser :
@Component— lorsque la classe elle-même est un composant pouvant être trouvé automatiquement.@Bean— lorsque vous devez créer un bean à partir d'une classe externe ou lorsque vous avez besoin d'une logique plus complexe pour créer l'objet.
Exemple :
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}