Junior
Spring : un bean avec @Component est injecté à deux endroits — combien d'exemplaires sont créés ? Comment faire un nouvel exemplaire pour chaque injection ?
sobes.tech IA
Réponse de l'IA
Si un bean est annoté avec @Component et injecté à deux endroits, Spring créera par défaut une seule instance singleton de ce bean et l'utilisera partout.
Pour créer une nouvelle instance du bean à chaque injection, il faut changer la portée (scope) du bean en prototype:
@Component
@Scope("prototype")
public class MyBean {
// ...
}
Dans ce cas, Spring créera une nouvelle instance du bean à chaque injection.
Important : lors de l'utilisation de beans prototype dans des beans singleton, il faut prendre en compte que Spring ne créera pas automatiquement de nouvelles instances à chaque appel, seulement lors de la création du bean singleton. Pour obtenir dynamiquement de nouvelles instances, on peut utiliser ObjectFactory ou Provider.