Sobes.tech
Junior — Middle

Ako implementovať vzor Singleton v modernom kontajneri závislostí?

sobes.tech AI

Odpoveď od AI

V moderných kontajneroch závislostí (napríklad Spring, CDI) je vzor Singleton implementovaný prostredníctvom konfigurácie kontajnera, ktorý spravuje životný cyklus objektu a garantuje, že bude vytvorený iba jeden exemplár.

V Spring sú napríklad beany predvolene singletony. Stačí deklarovať bean:

@Component
public class MySingletonService {
    // logika
}

Kontajner vytvorí jeden exemplár MySingletonService a bude ho používať všade tam, kde je potrebný.

Ak je bean vytváraný ručne, je možné určiť rozsah singleton:

@Bean
@Scope("singleton")
public MySingletonService mySingletonService() {
    return new MySingletonService();
}

Týmto spôsobom je registrácia singletonu obmedzená na deklaráciu komponentu s rozsahom singleton, a kontajner garantuje jedinečnosť exemplára a spravuje jeho životný cyklus.