Spring IoC контейнер: области применения бинов, application
Рассмотрим следующую конфигурацию XML для определения компонента:
<bean id="appPreferences" class="com.something.AppPreferences" scope="application"/>
Контейнер Spring создает новый экземпляр компонента AppPreferences, используя определение компонента appPreferences один раз для всего веб-приложения. Таким образом, bean-компонент appPreferences находится на уровне ServletContext и сохраняется как обычный атрибут ServletContext. Это в некоторой степени похоже на одноэлементный компонент Spring (singleton), но отличается двумя важными фактами: это один компонент для ServletContext, а не для Spring 'ApplicationContext' (для которого может быть несколько в любом данном веб-приложении), и он фактически отображается и поэтому видимый как атрибут ServletContext.
При использовании управляемых аннотациями компонентов или конфигурации Java вы можете использовать аннотацию @ApplicationScope, чтобы назначить компонент области приложения. В следующем примере показано, как это сделать:
Java
@ApplicationScope
@Component
public class AppPreferences {
// ...
}
Kotlin
@ApplicationScope
@Component
class AppPreferences {
// ...
}
Читайте также:
- Spring IoC контейнер: области применения бинов
- Spring IoC контейнер: области применения бинов, синглтон
- Spring IoC контейнер: области применения бинов, прототип (prototype)
- Spring IoC контейнер: области применения бинов - Request, Session, Application и WebSocket
Комментарии
Отправить комментарий