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

Какие области видимости (scopes) существуют у бинов в контейнере IoC?

Компании, где спрашивали
СБЕРСБЕР

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

sobes.tech AI

В контейнерах IoC (например, в Spring Framework) существуют несколько основных областей видимости (scopes) для бинов:

  • Singleton — бин создаётся один раз на весь контейнер, и все запросы получают один и тот же экземпляр. Это значение по умолчанию в Spring.
  • Prototype — при каждом запросе создаётся новый экземпляр бина.
  • Request — бин живёт в рамках одного HTTP-запроса (актуально для веб-приложений).
  • Session — бин живёт в рамках HTTP-сессии пользователя.
  • Application — бин живёт в рамках всего веб-приложения (контекста сервлета).
  • Websocket — бин живёт в рамках WebSocket-сессии.

Выбор области видимости зависит от задач: singleton подходит для сервисов с состоянием, prototype — для объектов с уникальным состоянием, request/session — для хранения данных, привязанных к пользователю или запросу.