Back to questions
СБЕР
Junior — Middle
87
Можешь перечислить различные области видимости бинов в Spring и их особенности?
Companies where asked
Answer from AI
sobes.tech AI
В Spring существуют несколько основных областей видимости (scopes) для бинов, каждая из которых определяет жизненный цикл и доступность экземпляров бина:
- singleton (по умолчанию): один экземпляр бина создается на весь контейнер Spring. Все запросы к этому бину получают один и тот же объект.
- prototype: при каждом запросе к бину создается новый экземпляр. Контейнер не управляет жизненным циклом после создания.
- request: бин существует в течение одного HTTP-запроса. Используется в веб-приложениях.
- session: бин привязан к HTTP-сессии пользователя, существует пока сессия активна.
- application: бин существует в пределах ServletContext, то есть на весь жизненный цикл веб-приложения.
- websocket: бин существует в течение жизненного цикла WebSocket-сессии.
Пример объявления бина с областью видимости prototype:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// ...
}
Выбор области видимости зависит от требований к жизненному циклу и состоянию бина в приложении.