Spring Boot proporciona configuración automática Spring Session para una amplia gama de almacenes de datos. Al crear una aplicación web de servlet, se pueden configurar automáticamente las siguientes tiendas:

  • JDBC

  • Redis

  • Hazelcast

  • MongoDB

Además, Spring Boot para Apache Geode proporciona configuración automática. para utilizar Apache Geode como almacén de sesiones.

La configuración automática del servlet reemplaza la necesidad de utilizar la anotación @Enable*HttpSession.

Al crear una aplicación web reactiva, las siguientes tiendas se pueden configurar automáticamente:

  • Redis

  • MongoDB

La configuración automática reactiva reemplaza la necesidad de utilizar la anotación @Enable*WebSession.

Si hay un módulo Spring Session en el classpath, Spring Boot usa automáticamente esa implementación de almacenamiento. Si hay más de una implementación, debe seleccionar StoreType que desea utilizar para almacenar sesiones. Por ejemplo, para utilizar JDBC como almacenamiento backend, puede configurar su aplicación de la siguiente manera:

Propiedades
spring.session.store-type=jdbc
Yaml
primavera:
  sesión:
    tipo de tienda: "jdbc"
Puedes desactivar Spring Session configurando store-type en none.

Cada repositorio tiene ciertos parámetros adicionales. Por ejemplo, puede personalizar el nombre de la tabla para una tienda JDBC, como se muestra en el siguiente ejemplo:

Propiedades
spring.session.jdbc.table-name=SESSIONS
Yaml
primavera:
  sesión:
    jdbc:
      nombre-tabla: "SESIONES"

Para establecer el tiempo de espera de la sesión, puede utilizar la propiedad spring.session.timeout. Si esta propiedad no está configurada en una aplicación web de servlet, la configuración automática recurrirá a server.servlet.session.timeout.

Puede administrar la configuración de Spring Session utilizando la anotación @Enable*HttpSession (aplicación servlet) o la anotación @Enable*WebSession (aplicación reactiva). Esto revertirá la configuración automática. Luego, la sesión de primavera se puede configurar utilizando atributos de anotación en lugar de las propiedades de configuración descritas anteriormente.