Sobes.tech
Junior — Middle

Quelle est la différence entre le scope Singleton et Prototype dans le contexte des injections de dépendances?

sobes.tech IA

Réponse de l'IA

Dans le contexte de l'injection de dépendances, la portée (scope) détermine le cycle de vie et le nombre d'instances d'objets créés.

  • Singleton : l'objet est créé une seule fois durant tout le cycle de vie de l'application ou du conteneur DI. Toutes les requêtes pour cette dépendance reçoivent la même instance. Cela est pratique pour les services qui doivent conserver un état ou être partagés.

  • Prototype : une nouvelle instance de l'objet est créée à chaque requête. Cela est utile lorsque vous avez besoin d'un objet indépendant avec son propre état.

Exemple :

// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
    // une seule instance pour toute l'application
}

// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
    // nouvelle instance à chaque requête
}

Ainsi, Singleton garantit une instance unique, tandis que Prototype fournit plusieurs instances indépendantes, ce qui influence la gestion de l'état et la performance de l'application.