Sobes.tech
Junior — Middle

Modern bir bağımlılık konteynerinde Singleton desenini nasıl uygulayabilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

В современных контейнерах зависимостей (например, Spring, CDI) паттерн Singleton реализуется через конфигурацию контейнера, который управляет жизненным циклом объекта и гарантирует, что будет создан только один экземпляр.

В Spring, например, по умолчанию бины являются синглтонами. Достаточно объявить бин:

@Component
public class MySingletonService {
    // логика
}

Контейнер создаст один экземпляр MySingletonService и будет использовать его везде, где требуется.

Если бин создается вручную, можно указать область синглтона:

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

Таким образом, регистрация синглтона сводится к объявлению компонента с областью singleton, а контейнер сам гарантирует единственность экземпляра и управление его жизненным циклом.