Spring Session解决session共享

PS:借助Spring Session实现分布式session共享服务。不管是Spring Boot工程、Spring MVC工程、还是其他Java工程。极大的降低了整合成本。本文仅记载基于Redis的Spring Session,其他DB、Hazelcast等方式,自行官网查阅。

一、Spring Session

官网地址:https://docs.spring.io/spring-session/docs/current/reference/html5/index.html#introduction

1、Spring Session提供了用于管理用户会话信息的API和实现,使集群会话变的简单,且不依赖特定容器。
2、Spring Session由以下模块组成:
  • Spring Session Core-提供核心的Spring Session功能和API
  • Spring Session Data Redis-提供由Redis支持的SessionRepository和ReactiveSessionRepository实现以及配置支持
  • Spring Session JDBC-提供由关系数据库支持的SessionRepository实现和配置支持
  • Spring Session Hazelcast-提供由Hazelcast支持的SessionRepository实现和配置支持
二、Spring Boot

https://docs.spring.io/spring-session/docs/current/reference/html5/guides/boot-redis.html#updating-dependencies

1、依赖配置
<dependencies>
	

	<dependency>
		<groupId>org.springframework.sessiongroupId>
		<artifactId>spring-session-data-redisartifactId>
	dependency>
dependencies>
2、SpringBoot配置
spring.session.store-type=redis # Session store type.
server.servlet.session.timeout= # Session timeout. If a duration suffix is not specified, seconds is used.
spring.session.redis.flush-mode=on_save # Sessions flush mode.
spring.session.redis.namespace=spring:session # Namespace for keys used to store sessions.
3、Redis配置
spring.redis.host=localhost # Redis server host.
spring.redis.password= # Login password of the redis server.
spring.redis.port=6379 # Redis server port.
4、官方示例

下载官方示例 source code,执行如下命令:

$ ./gradlew :spring-session-sample-boot-redis:bootRun

访问地址:http://localhost:8080/
Username:user
Password:password

5、测试效果
#查询session
$ redis-cli keys '*' | xargs redis-cli del
#删除指定session
$ redis-cli del spring:session:sessions:7e8383a4-082c-4ffe-a4bc-c40fd3363c5e

删除session后,访问http://localhost:8080/ ,身份认证失效,需要重新登录

安利个Spring Cloud中文网: https://www.springcloud.cc/spring-session.html

你可能感兴趣的:(文件配置)