Sobes.tech
Назад к вопросам
Junior — Middle
60

Каким образом можно реализовать регистрацию паттерна Singleton в современном контейнере зависимостей?

Ответ от нейросети

sobes.tech AI

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

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

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

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

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

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

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