Sobes.tech
Junior — Middle

Care este diferența dintre domeniul de aplicare Singleton și Prototype în contextul injecțiilor de dependență?

sobes.tech AI

Răspuns de la AI

În contextul injecției de dependențe, scope-ul (domeniul de aplicare) determină ciclul de viață și numărul de instanțe ale obiectelor create.

  • Singleton: obiectul este creat o singură dată pe durata întregului ciclu de viață al aplicației sau al containerului DI. Toate solicitările pentru această dependență primesc aceeași instanță. Acest lucru este convenabil pentru servicii care trebuie să păstreze stare sau să fie partajate.

  • Prototype: la fiecare solicitare se creează o nouă instanță a obiectului. Acest lucru este util atunci când este necesar un obiect independent cu propria stare.

Exemplu:

// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
    // o instanță pentru întreaga aplicație
}

// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
    // o nouă instanță la fiecare solicitare
}

Astfel, Singleton asigură o singură instanță, iar Prototype oferă multiple instanțe independente, ceea ce influențează gestionarea stării și performanța aplicației.