Можешь перечислить и объяснить основные области видимости компонентов Bean в Spring?
Ответ от нейросети
sobes.tech AI
В Spring Framework существуют несколько основных областей видимости (scope) для компонентов Bean, которые определяют время жизни и видимость экземпляров бинов:
-
singleton (по умолчанию) — один экземпляр бина создаётся на весь контейнер Spring. Все запросы к этому бину возвращают один и тот же объект.
-
prototype — при каждом запросе к контейнеру создаётся новый экземпляр бина.
-
request — бин живёт в течение одного HTTP-запроса (актуально для веб-приложений). Каждый HTTP-запрос получает свой экземпляр.
-
session — бин живёт в пределах HTTP-сессии пользователя.
-
application — бин живёт в пределах ServletContext, то есть на уровне всего веб-приложения.
-
websocket — бин живёт в течение WebSocket-сессии.
Пример объявления бина с областью видимости prototype:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// ...
}
Выбор области видимости зависит от требований к жизненному циклу и состоянию бина в приложении.