Почему scope singleton выбран по умолчанию для бинов, и почему создание объекта считается дорогой операцией?

Singleton удобен для переиспользуемых stateless-сервисов: один экземпляр на bean definition в контейнере. Дорогим бывает не сам new, а инициализация зависимостей, ресурсов и инфраструктуры вокруг объекта.

Короткий ответ

Что ответить на собеседовании

Singleton удобен для переиспользуемых stateless-сервисов: один экземпляр на bean definition в контейнере. Дорогим бывает не сам new, а инициализация зависимостей, ресурсов и инфраструктуры вокруг объекта.

Подробный разбор

Ответ с пояснениями

Singleton удобен для переиспользуемых stateless-сервисов: один экземпляр на bean definition в контейнере. Дорогим бывает не сам new, а инициализация зависимостей, ресурсов и инфраструктуры вокруг объекта.

Обычная аллокация небольшого объекта в JVM часто дешева. Но bean может строить кэш, открывать ресурсы и проходить post-processors, поэтому постоянное пересоздание не всегда разумно. Singleton не означает единственный объект во всей JVM и не обеспечивает потокобезопасность. Пользовательское изменяемое состояние нельзя хранить в общем сервисе без необходимой изоляции.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее