Junior — Middle
Hogyan valósítható meg a Singleton minta egy modern függőségkezelőben?
sobes.tech MI
Válasz az MI-től
A modern dependency injection konténerekben (pl. Spring, CDI) a Singleton minta a konténer konfigurációján keresztül valósul meg, amely kezeli az objektum életciklusát és garantálja, hogy csak egy példány jöjjön létre.
Például Springben az összetevők alapértelmezés szerint singletonok. Elég egy összetevőt deklarálni:
@Component
public class MySingletonService {
// logika
}
A konténer létrehoz egy példányt a MySingletonService-ből, és mindenhol használni fogja, ahol szükséges.
Ha az összetevőt kézzel hozza létre, meg lehet adni a singleton tartományt:
@Bean
@Scope("singleton")
public MySingletonService mySingletonService() {
return new MySingletonService();
}
Így a singleton regisztrációja annyiban korlátozódik, hogy egy komponens deklarálása singleton tartományban történik, és a konténer garantálja az egyediséget és kezeli az életciklusát.