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 {
    // ...
}


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки