Spring Boot предусматривает автоконфигурацию Spring Session для широкого спектра хранилищ данных. При создании сервлетного веб-приложения следующие хранилища могут быть автоматически сконфигурированы:

  • JDBC

  • Redis

  • Hazelcast

  • MongoDB

Кроме того, Spring Boot для Apache Geode предусматривает автоконфигурацию для использования Apache Geode в качестве хранилища сессий.

Автоконфигурация сервлета заменяет необходимость использования аннотации @Enable*HttpSession.

При создании реактивного веб-приложения следующие хранилища могут быть автоматически сконфигурированы:

  • Redis

  • MongoDB

Реактивная автоконфигурация заменяет необходимость использования аннотации @Enable*WebSession.

Если в classpath присутствует один модуль Spring Session, Spring Boot автоматически использует эту реализацию хранилища. Если имеется более одной реализации, необходимо выбрать StoreType, который вы хотите использовать для хранения сессий. Например, чтобы использовать JDBC в качестве бэкенд-хранилища, можно сконфигурировать приложение следующим образом:

Properties
spring.session.store-type=jdbc
Yaml
spring:
  session:
    store-type: "jdbc"
Можно отключить Spring Session, установив для store-type значение none.

Каждое хранилище имеет определенные дополнительные параметры. Например, можно настроить имя таблицы для хранилища JDBC, как показано в следующем примере:

Properties
spring.session.jdbc.table-name=SESSIONS
Yaml
spring:
  session:
    jdbc:
      table-name: "SESSIONS"

Для установки времени ожидания сессии можно использовать свойство spring.session.timeout. Если это свойство не установить в сервлетном веб-приложении, автоконфигурация вернется к значению server.servlet.session.timeout.

Можно управлять конфигурацией Spring Session, используя аннотацию @Enable*HttpSession (сервлетное приложение) или аннотацию @Enable*WebSession (реактивное приложение). Это приведет к откату автоконфигурации. Затем Spring Session можно будет сконфигурировать, используя атрибуты аннотации, а не описанные ранее конфигурационные свойства.