基于spring boot 的session共享
依赖包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.3.3.RELEASE</version>
</dependency>
三个包分别是:对redis支持的包、springsession 对redis 集成的包、springsession 包
添加依赖到 pom.xml 中
application文件配置:
//用于指定session共享保存位置
spring.session.store-type: redis
注解启用配置:
添加 @EnableRedisHttpSession 注解,即启用springsession + redis 的共享机制。
二级域名配置:
正常来说上边步骤结束,就能正常使用springsession共享功能了,但是有一些局限性,就是在二级域名下,不同子域名之间不能共享session。所以添加如下配置:
创建配置类 SessionConfig ,添加方法(也可以添加在启动类中)
@Bean
public CookieSerializer cookieSerializer(){
DefaultCookieSerializer defaultCookieSerializer = new DefaultCookieSerializer();
defaultCookieSerializer.setCookieName("sessionId");
defaultCookieSerializer.setDomainName("aijianzi.com");
defaultCookieSerializer.setCookiePath("/");
return defaultCookieSerializer;
}
setDomainName 即为设置二级域名配置,配置好之后就可以跨二级子域名使用spring session 做到session共享了。
@EnableRedisHttpSession 注解可以添加在配置类上
使用:
session 共享之后的使用,和正常使用一样。