Junior — Middle
Asılılıqların inyeksiyası kontekstində Singleton və Prototype sahəsi arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Asılılıq injektsiyası kontekstində, scope (sahə) yaradılan obyektlərin həyat dövrünü və sayını müəyyən edir.
-
Singleton: obyekt bütün tətbiq və ya DI konteynerinin həyat dövrü boyunca bir dəfə yaradılır. Bu asılılıq üçün bütün sorğular eyni nümunəni alır. Bu, vəziyyəti saxlamaq və ya ümumi xidmətlər üçün əlverişlidir.
-
Prototype: hər sorğuda yeni obyekt nümunəsi yaradılır. Bu, müstəqil obyektə və onun öz vəziyyətinə ehtiyac olduqda faydalıdır.
Misal:
// Singleton sahə
@Component
@Scope("singleton")
public class MyService {
// bütün tətbiq üçün bir nümunə
}
// Prototype sahə
@Component
@Scope("prototype")
public class MyPrototypeService {
// hər sorğuda yeni nümunə
}
Beləliklə, Singleton tək nümunə təmin edir, Prototype isə çoxsaylı müstəqil nümunələr təqdim edir, bu da vəziyyətin idarə olunmasına və tətbiqin performansına təsir edir.