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.