Sobes.tech
Junior — Middle

Čím se liší oblast viditelnosti Singleton a Prototype v kontextu injekcí závislostí?

sobes.tech AI

Odpověď od AI

V kontextu závislostní injekce určuje scope (rozsah) životní cyklus a počet vytvářených instancí objektů.

  • Singleton: objekt je vytvořen jednou během celého životního cyklu aplikace nebo DI kontejneru. Všechny požadavky na tuto závislost dostanou stejnou instanci. To je vhodné pro služby, které musí uchovávat stav nebo být sdílené.

  • Prototype: při každém požadavku je vytvořena nová instance objektu. To je užitečné, když je potřeba nezávislý objekt s vlastním stavem.

Příklad:

// Scope Singleton
@Component
@Scope("singleton")
public class MyService {
    // jedna instance pro celou aplikaci
}

// Scope Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
    // nová instance při každém požadavku
}

Tímto způsobem Singleton zajišťuje jedinou instanci, zatímco Prototype poskytuje více nezávislých instancí, což ovlivňuje správu stavu a výkon aplikace.