Junior — Middle
Mi a különbség a Singleton és a Prototype láthatósági területe között a függőséginjektálás kontextusában?
sobes.tech MI
Válasz az MI-től
A függőséginjektálás kontextusában a scope (hatókör) meghatározza az objektumok életciklusát és példányszámát.
-
Singleton: az objektum egyszer jön létre az alkalmazás vagy a DI konténer teljes életciklusa alatt. Minden kérés erre a függőségre ugyanazt a példányt kapja. Ez kényelmes olyan szolgáltatásokhoz, amelyeknek állapotot kell megőrizniük vagy megosztaniuk.
-
Prototype: minden kérésnél új példány jön létre az objektumból. Ez akkor hasznos, ha független objektumra van szükség saját állapottal.
Példa:
// Singleton scope
@Component
@Scope("singleton")
public class MyService {
// egy példány az alkalmazás számára
}
// Prototype scope
@Component
@Scope("prototype")
public class MyPrototypeService {
// új példány minden kérésnél
}
Így a Singleton egységes példányt biztosít, míg a Prototype több független példányt, ami befolyásolja az állapotkezelést és az alkalmazás teljesítményét.