Junior — Middle
Kako implementirati Singleton obrazac u modernom kontejneru za zavisnosti?
sobes.tech АИ
Одговор од АИ
В современных контейнерах зависимостей (например, Spring, CDI) паттерн Singleton реализуется через конфигурацию контейнера, который управляет жизненным циклом объекта и гарантирует, что будет создан только один экземпляр.
В Spring, например, по умолчанию бины являются синглтонами. Достаточно объявить бин:
@Component
public class MySingletonService {
// логика
}
Контейнер создаст один экземпляр MySingletonService и будет использовать его везде, где требуется.
Если бин создается вручную, можно указать область синглтона:
@Bean
@Scope("singleton")
public MySingletonService mySingletonService() {
return new MySingletonService();
}
Таким образом, регистрация синглтона сводится к объявлению компонента с областью singleton, а контейнер сам гарантирует единственность экземпляра и управление его жизненным циклом.