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

Какие области видимости (scope) в Spring вы знаете?

Sobes Copilot

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

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

sobes.tech AI

В Spring Framework существует несколько стандартных областей видимости бинов:

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

Пример объявления бина с указанием области видимости:

@Component
@Scope("prototype") // Или @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class MyPrototypeBean {
    // ...
}

Для веб-областей видимости (request, session, application) обычно используется аннотация @RequestScope, @SessionScope, @ApplicationScope.