Spring IoC контейнер: области применения бинов, session

Рассмотрим следующую конфигурацию XML для определения компонента:

<bean id="userPreferences" class="com.something.UserPreferences" scope="session"/>

Контейнер Spring создает новый экземпляр компонента UserPreferences с помощью определения компонента userPreferences для времени жизни одного сеанса HTTP. Другими словами, bean-компонент userPreferences эффективно ограничен на уровне сеанса HTTP. Как и в случае bean-объектов в области запросов, вы можете изменять внутреннее состояние экземпляра, который создается столько раз, сколько вы хотите, зная, что другие экземпляры сеанса HTTP, которые также используют экземпляры, созданные из того же определения bean-компонента userPreferences, не видят эти изменения в состоянии, потому что они специфичны для отдельного сеанса HTTP. Когда сеанс HTTP в конечном итоге отбрасывается, компонент, который ограничен этим конкретным сеансом HTTP, также отбрасывается.

При использовании управляемых аннотациями компонентов или конфигурации Java вы можете использовать аннотацию @SessionScope, чтобы назначить компонент области действия сеанса.

Java

@SessionScope
@Component
public class UserPreferences {
    // ...
}

Kotlin

@SessionScope
@Component
class UserPreferences {
    // ...
}


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


Комментарии

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

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

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

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