Назад к вопросам
Middle
164
questionbank
Что такое Spring Scope?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Spring Scope определяет жизненный цикл и область видимости бина. Он управляет тем, сколько экземпляров бина будет создано и как они будут доступны.
Основные типы Scope:
singleton: Создается один экземпляр бина в контексте приложения. Это Scope по умолчанию.prototype: Создается новый экземпляр бина при каждом запросе.request: Создается один экземпляр бина на HTTP-запрос. Применим только в веб-приложениях.session: Создается один экземпляр бина на HTTP-сессию. Применим только в веб-приложениях.application: Создается один экземпляр бина в течение всего жизненного циклаServletContext. Применим только в веб-приложениях.
Пример объявления бина с указанием Scope:
@Component
@Scope("prototype") // Указываем prototype scope
public class MyPrototypeBean {
// ...
}
Или в XML-конфигурации:
<bean id="myPrototypeBeanНачало" class="com.example.MyPrototypeBean" scope="prototype"/>
Выбор подходящего Scope зависит от требуемого поведения и состояния бина. Singleton подходит для stateless бинов, а prototype — для stateful или когда требуется изоляция экземпляров. Request, session и application используются в веб-контекстах для управления жизненным циклом бинов в соответствии с запросами, сессиями или всем веб-приложением.