Senior
18
Какие scope есть в Spring? Что такое singleton scope?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Spring существуют несколько типов scope для бинов, определяющих время жизни и область видимости экземпляров:
- singleton — по умолчанию, один экземпляр бина создаётся на весь контейнер Spring. Все запросы к этому бину получают один и тот же объект.
- prototype — при каждом запросе создаётся новый экземпляр бина.
- request — бин живёт в рамках одного HTTP-запроса (актуально для веб-приложений).
- session — бин привязан к HTTP-сессии пользователя.
- application — бин живёт в пределах ServletContext.
- websocket — бин живёт в рамках WebSocket-сессии.
Singleton scope означает, что Spring создаёт и управляет одним экземпляром бина на весь контекст приложения. Это удобно для сервисов, которые должны быть единственными и разделяемыми, например, для компонентов, не хранящих состояние, или для кэширования.
Пример объявления singleton бина (по умолчанию):
@Service
public class MyService {
// логика сервиса
}
Здесь MyService будет singleton, и все зависимости, которые его используют, получат один и тот же экземпляр.