Spring Session
2021.2.0Spring Session provides an API and implementations for managing a user’s session information.
Features
Spring Session makes it trivial to support clustered sessions without being tied to an application container specific solution. It also provides transparent integration with:
-
HttpSession
- allows replacing the HttpSession in an application container (i.e. Tomcat) neutral way, with support for providing session IDs in headers to work with RESTful APIs -
WebSocket
- provides the ability to keep the HttpSession alive when receiving WebSocket messages -
WebSession
- allows replacing the Spring WebFlux’s WebSession in an application container neutral way
Modules
Spring Session consists of the following modules:
-
Spring Session Core - provides core Spring Session functionalities and APIs
-
Spring Session Data Redis - provides SessionRepository and ReactiveSessionRepository implementation backed by Redis and configuration support
-
Spring Session JDBC - provides SessionRepository implementation backed by a relational database and configuration support
-
Spring Session Hazelcast - provides SessionRepository implementation backed by Hazelcast and configuration support
Adding Spring Session to your build
This project uses a Maven BOM (Bill of Materials) and a release train to coordinate versions, e.g. 2121.1.1
, 2020.0.3
, etc.
Using the BOM with Maven
With Maven, you need to import the BOM first:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-bom</artifactId>
<version>2021.1.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
-
This example is using
2021.1.1
, but you plug in the release train version you need. -
Notice the use of the
<dependencyManagement>
section and theimport
scope.
Next, add your dependencies to the project without a <version>
:
<dependencies>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
</dependencies>
Using the BOM with Gradle
Since Gradle has no first-class support for Maven BOMs, you can use Spring’s Dependency management plugin.
Apply the plugin from Gradle Plugin Portal (update the version if needed):
plugins {
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
Then use it to import the BOM:
dependencyManagement {
imports {
mavenBom 'org.springframework.session:spring-session-bom:2021.1.1'
}
}
Finally, add a dependency to the project without a version:
dependencies {
compile 'org.springframework.session:spring-session-data-redis'
}
Feedback
You can use the GitHub issue tracker to report bugs or enhancements in Spring Session.
If you have a general usage question, please ask on Stack Overflow using the spring-session tag.
Quickstart Your Project
Documentation
2021.2.0 CURRENT GA | Reference Doc. | |
2022.0.0-M2 PRE | Reference Doc. | |
2021.2.0-RC1 PRE | Reference Doc. | |
2021.1.3 GA | Reference Doc. | |
2021.0.6 GA | Reference Doc. | |
2020.0.7 GA | Reference Doc. |