Назад к вопросам
Middle
107
questionbank

Что такое область видимости (scope) бина в контексте Spring?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

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

  • singleton: Один экземпляр бина создается для всего контекста Spring-приложения. Это область видимости по умолчанию. Все запросы на получение бина с этим scope будут возвращать один и тот же экземпляр.
  • prototype: Новый экземпляр бина создается при каждом запросе на его получение из контекста Spring.
  • request: Новый экземпляр бина создается для каждого HTTP-запроса. Актуально для веб-приложений.
  • session: Новый экземпляр бина создается для каждой HTTP-сессии. Актуально для веб-приложений.
  • application: Новый экземпляр бина создается для всего контекста ServletContext. Актуально для веб-приложений.

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

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

Пример объявления бина с областью видимости request (для веб-приложений):

@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class MyRequestScopedBean {
    // ...
}