Spring IoC контейнер: области применения бинов
Когда вы создаете определение компонента, вы создаете рецепт для создания фактических экземпляров класса, определенного этим определением компонента. Идея о том, что определение компонента - это рецепт, важна, потому что это означает, что, как и в случае с классом, вы можете создать множество экземпляров объекта из одного рецепта.
Вы можете управлять не только различными зависимостями и значениями конфигурации, которые нужно подключить к объекту, созданному из определенного определения компонента, но также управлять областью объектов, созданных из определенного определения компонента. Этот подход является мощным и гибким, потому что вы можете выбрать область действия объектов, которые вы создаете с помощью конфигурации, вместо того, чтобы делать это в области объекта на уровне класса Java. Бины могут быть определены для развертывания в одной из нескольких областей. Spring Framework поддерживает шесть областей, четыре из которых доступны только при использовании веб ApplicationContext. Вы также можете создать пользовательскую область.
В следующей таблице описаны поддерживаемые области:
Области применения бинов
Область применения |
Описание |
---|---|
singleton | (По умолчанию) Области применения одного определения компонента к одному экземпляру объекта для каждого контейнера IoC Spring. |
prototype | Области применения одного определения бина для любого количества экземпляров объекта. |
request | Обрабатывает определение единственного компонента для жизненного цикла одного HTTP-запроса. То есть каждый HTTP-запрос имеет свой собственный экземпляр компонента, созданного на основе определения одного компонента. Действителен только в контексте веб-приложения Spring ApplicationContext. |
session | Обрабатывает определение единственного компонента для жизненного цикла сеанса HTTP. Действителен только в контексте веб-приложения Spring ApplicationContext. |
application | Области применения одного определения бина к жизненному циклу ServletContext. Действителен только в контексте веб-приложения Spring ApplicationContext. |
websocket | Области применения одного определения бина к жизненному циклу WebSocket. Действителен только в контексте веб-приложения Spring ApplicationContext. |
Читайте также:
- Spring IoC контейнер: зависимости, инъекция метода
- Spring IoC контейнер: зависимости, инъекция метода поиска
- Spring IoC контейнер: зависимости, автопривязка взаимодействующих компонентов
Комментарии
Отправить комментарий