Spring поддерживает несколько областей видимости для бинов:
- singleton: Объединяет один экземпляр определения бина на каждый контейнер Spring. Это область видимости по умолчанию.
- prototype: Создает новый экземпляр бина каждый раз, когда он запрашивается.
- request: Объединяет один экземпляр определения бина в течение жизненного цикла одного HTTP-запроса. Применяется только в контексте веб-приложения.
- session: Объединяет один экземпляр определения бина в течение жизненного цикла одной HTTP-сессии. Применяется только в контексте веб-приложения.
- application: Объединяет один экземпляр определения бина в течение жизненного цикла ServletContext. Применяется только в контексте веб-приложения.
- websocket: Объединяет один экземпляр определения бина в течение жизненного цикла подключения WebSocket. Применяется только в контексте веб-приложения.
Для объявления области видимости можно использовать аннотацию @Scope:
java
Или в XML-конфигурации:
xml
Важно отметить, что области видимости request, session, application и websocket доступны только при использовании WebApplicationContext.