Как определяется область видимости (Scope) для компонентов Spring при запуске нового HTTP-запроса?

В Spring область видимости (scope) компонентов определяет, как долго живет экземпляр бина и в каком контексте он используется.

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

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

В Spring область видимости (scope) компонентов определяет, как долго живет экземпляр бина и в каком контексте он используется.

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

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

В Spring область видимости (scope) компонентов определяет, как долго живет экземпляр бина и в каком контексте он используется.

Для HTTP-запросов часто используется scope request, который означает, что для каждого нового HTTP-запроса создается новый экземпляр компонента. Это удобно, когда нужно хранить данные, специфичные для одного запроса.

Пример:

@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RequestScopedBean {
    // поля и методы
}

Здесь Spring создает новый экземпляр RequestScopedBean для каждого HTTP-запроса. Если компонент имеет scope singleton (по умолчанию), то один экземпляр используется на весь жизненный цикл приложения.

Таким образом, при запуске нового HTTP-запроса Spring создает новые бины с областью видимости request, а для других scope — использует существующие экземпляры согласно их настройкам.

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

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

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

Подробнее