Sobes.tech
Junior — Middle

Kako se određuje opseg (Scope) za Spring komponente prilikom pokretanja novog HTTP zahteva?

sobes.tech АИ

Одговор од АИ

В 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 — использует существующие экземпляры согласно их настройкам.