有时我们可能有多个不同的Web应用,可以相互调用,这时如果每个应用都有自己的session,那用户跳转到另一个应用时就又需要登陆一次,这样会带来很不好的体验,因此我们需要在不同的应用中共享session。这里,我们采用redis来实现。
前置说明
由于只用到redis和springboot的整合,所以只能实现一个URL下的不同端口的应用之间的session共享,如果连应用名称都完全不同的两个应用要实现session共享,在这个基础上还需要使用到Nginx,这种方式我暂时还没有试过。(SpringBoot项目默认就是不带应用名称的,除非自己在配置文件中修改过)
需要提前在本地安装好redis,或者连接远程redis服务器。这里就不写安装教程了,可以自行去网上搜索。
添加依赖
需要为springboot项目添加以下两个依赖,参与session共享的项目都需要添加。
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.session
spring-session-data-redis
一个是redis的依赖,一个是spring-session-data-redis的依赖。
配置redis参数
在SpringBoot项目的application.properties配置文件中配置redis参数:
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址,如果是远程redis服务器,就改成服务器地址
spring.re