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

Можешь перечислить и объяснить основные области видимости компонентов Bean в Spring?

Компании, где спрашивали
Prooftech
СБЕРСБЕР
Акселератор возможностей
ИннотехИннотех
Workme

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

sobes.tech AI

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

  1. singleton (по умолчанию) — один экземпляр бина создаётся на весь контейнер Spring. Все запросы к этому бину возвращают один и тот же объект.

  2. prototype — при каждом запросе к контейнеру создаётся новый экземпляр бина.

  3. request — бин живёт в течение одного HTTP-запроса (актуально для веб-приложений). Каждый HTTP-запрос получает свой экземпляр.

  4. session — бин живёт в пределах HTTP-сессии пользователя.

  5. application — бин живёт в пределах ServletContext, то есть на уровне всего веб-приложения.

  6. websocket — бин живёт в течение WebSocket-сессии.

Пример объявления бина с областью видимости prototype:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // ...
}

Выбор области видимости зависит от требований к жизненному циклу и состоянию бина в приложении.