Sobes.tech
Back to questions
Junior — Middle
87

Можешь перечислить различные области видимости бинов в Spring и их особенности?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

  • singleton (по умолчанию): один экземпляр бина создается на весь контейнер Spring. Все запросы к этому бину получают один и тот же объект.
  • prototype: при каждом запросе к бину создается новый экземпляр. Контейнер не управляет жизненным циклом после создания.
  • request: бин существует в течение одного HTTP-запроса. Используется в веб-приложениях.
  • session: бин привязан к HTTP-сессии пользователя, существует пока сессия активна.
  • application: бин существует в пределах ServletContext, то есть на весь жизненный цикл веб-приложения.
  • websocket: бин существует в течение жизненного цикла WebSocket-сессии.

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

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

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