Sobes.tech
Junior — Middle

Que signifie la définition de la portée pour les beans avec des valeurs singleton et prototype dans Spring, et comment cela influence-t-il leur comportement?

sobes.tech IA

Réponse de l'IA

Dans Spring, la portée (scope) d’un bean définit la durée de vie et la visibilité de l’instance du bean.

  • singleton — c’est la portée par défaut. Chaque fois qu’un bean avec ce scope est demandé, Spring retourne la même instance tout au long du cycle de vie du conteneur. Cela signifie que le bean est créé une seule fois et réutilisé.

  • prototype — à chaque demande, une nouvelle instance du bean est créée. Spring ne gère pas le cycle de vie de ces beans après leur création, donc chaque appel à getBean retourne un nouvel objet.

Impact sur le comportement :

  • Les beans singleton économisent des ressources et assurent un état partagé entre tous les utilisateurs.
  • Les beans prototype sont utiles lorsque vous avez besoin d’une nouvelle instance avec un état indépendant pour chaque utilisation.

Exemple :

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // chaque appel à getBean créera un nouvel objet
}

@Component
@Scope("singleton")
public class MySingletonBean {
    // un seul objet pour tout le conteneur
}

Ainsi, le choix du scope influence la façon dont les objets sont créés et leur durée de vie dans l’application.