Назад к вопросам
Middle
107
questionbank
Что такое область видимости (scope) бина в контексте Spring?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Область видимости бина в Spring определяет время его жизни, как создается экземпляр и как часто он используется в приложении.
- singleton: Один экземпляр бина создается для всего контекста Spring-приложения. Это область видимости по умолчанию. Все запросы на получение бина с этим scope будут возвращать один и тот же экземпляр.
- prototype: Новый экземпляр бина создается при каждом запросе на его получение из контекста Spring.
- request: Новый экземпляр бина создается для каждого HTTP-запроса. Актуально для веб-приложений.
- session: Новый экземпляр бина создается для каждой HTTP-сессии. Актуально для веб-приложений.
- application: Новый экземпляр бина создается для всего контекста
ServletContext. Актуально для веб-приложений.
Пример объявления бина с областью видимости prototype:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// ...
}
Пример объявления бина с областью видимости request (для веб-приложений):
@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class MyRequestScopedBean {
// ...
}