Junior — Middle
Каква е разликата между обхвата на Singleton и Prototype в контекста на инжекциите на зависимости?
sobes.tech AI
Отговор от AI
В контекста на внедряване на зависимости, обхватът (scope) определя жизнения цикъл и броя на създаваните обекти.
-
Singleton: обектът се създава веднъж през целия жизнен цикъл на приложението или DI контейнера. Всички заявки към тази зависимост получават една и съща инстанция. Това е удобно за услуги, които трябва да запазват състояние или да бъдат споделяни.
-
Prototype: при всяка заявка се създава нова инстанция на обекта. Това е полезно, когато е необходим независим обект с собствено състояние.
Пример:
// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
// една инстанция за цялото приложение
}
// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
// нова инстанция при всяка заявка
}
По този начин, Singleton осигурява единствена инстанция, а Prototype — множество независими инстанции, което влияе върху управлението на състоянието и производителността на приложението.