spring boot +redis实现session共享
2019-06-28 本文已影响73人
5eac0cfdd510
一、环境搭建
1.1 pom文件配置
<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>
1.2 application.peoperties文件/yaml文件配置
spring.redis.host=redis主机地址
spring.redis.port=端口号
spring.redis.password=密码
1.3 开启spring session支持
方法一:
@Configuration
@EnableRedisHttpSession
public class RedisSessionConfig {
}
方法二:
在启动类中添加注解:@EnableRedisHttpSession 同时可以指定失效时间: maxInactiveIntervalInSeconds = 3600
总结:按照以上步骤 spring boot +redis实现session共享的环境已经搭建好了。下面看看测试效果:
二、测试
2.1 两个jar包项目测试
- 1 输入命令启动不同端口的项目
java -jar -Dserver.port=端口名 jar包名
- 2 结果展示
-
2.1 redis中设置sessionid
1561711991607.jpg - 2.2 redis中取sessionid
redis ger values.jpg
由上可知,两个jar包打包启动后可以进行session共享
码云地址:https://gitee.com/huangjian163/redis2.git
-
2.2 两个war项目在同一个tomcat下
-
1 结果展示
-1.1 redis中设置sessionid的值
tomcatsetvalue.jpg
-1.2 redis中获取sessionid的值
tomcatgetValue.jpg
由上可知。两个web项目在同一个tomcat中无法对session进行共享 - 2 解决同一个tomcat下session无法共享的方案
- 2.1 修改applicat/yaml配置文件
```
server.servlet.context-path = tomcat的路径 (/redis)
server.servlet.session.cookie.path = 统一cookie请求路径 (建议统一使用 /)
- 2.2 修改结果
ok.jpg
码云地址:https://gitee.com/huangjian163/redis1.git
总结
经过我的验证后满足需求,暂时没有出现问题,也希望大家能看看有没有问题,有的话给我点好的建议!