Un Bean est un POJO (Plain Old Java Object), qui est géré par le conteneur Spring.
Les conteneurs Spring ne créent par défaut qu'une seule instance du bean.
Ce bean est mis en cache dans la mémoire, de sorte que toutes les requêtes pour le bean renverront une référence partagée vers le même bean.
L'annotation @Bean renvoie un objet que Spring enregistre en tant que bean dans le contexte de l'application.
La logique à l'intérieur de la méthode est responsable de la création de l'instance.
Quand utiliser l'annotation @Bean ?
Lorsque la configuration automatique n'est pas possible. Par exemple, lorsque nous voulons connecter des composants provenant d'une bibliothèque tierce, parce que le code source n'est pas disponible et que nous ne pouvons donc pas annoter les classes avec @Component.
Un scénario en temps réel pourrait être que quelqu'un veuille se connecter à la base de données Amazon S3. La source n'étant pas disponible, il devrait créer un @bean.
@Bean
public AmazonS3 awsS3Client() {
BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsKeyId, accessKey);
return AmazonS3ClientBuilder.standard().withRegion(Regions.fromName(region))
.withCredentials(new AWSStaticCredentialsProvider(awsCreds)).build();
}
Source du code ci-dessus -> https://www.devglan.com/spring-mvc/aws-s3-java
Parce que j'ai mentionné l'annotation @Component ci-dessus.
@Component Indique qu'une classe annotée est un "composant". Ces classes sont considérées comme des candidates à l'autodétection lors de l'utilisation de la configuration basée sur les annotations et de l'analyse du chemin des classes.
L'annotation Component enregistre la classe en tant que bean unique.
2 votes
Grails est construit sur Spring. Si vous n'êtes pas familier avec Spring, je vous suggère au moins de lire quelques documents à ce sujet afin de comprendre les technologies que vous utilisez.
33 votes
Je pense que les commentaires ici souffrent du même problème que l'OP voit dans les références dans les docs et livres Grails : ils ne sont faciles que pour les gens qui savent déjà ce qu'ils veulent dire. Je trouve que l'article de Wikipedia décrit bien mieux les choses pour un débutant.
12 votes
@MarcoForberg l'une des raisons pour lesquelles l'ancienne version de Spring est en tête de liste sur Google est que les gens continuent à faire des liens vers elle à partir d'endroits comme SO... static.springsource.org/spring/docs/3.2.x/ serait un meilleur point de départ de nos jours.
5 votes
+1 @IanRoberts. Voici le actuel .
0 votes
Le fait qu'ils présentent IoC en disant que IoC est aussi connu sous le nom de DI n'aide pas. Ils sont liés oui, mais IoC est beaucoup plus large.
0 votes
J'ai aimé cette description des haricots de printemps : baeldung.com/fèves de printemps