Sobes.tech
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.