springboot实现session共享(redis中保存)
java1234
共 2015字,需浏览 5分钟
·
2020-08-25 19:42
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
作者 | 亲爸爸
来源 | urlify.cn/ueiqAz
模拟测试:建立两个模块,一个保存session到redis中,一个从redis中获取session的value值
模块相同部分:
1.pom
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
<dependency>
<groupId>org.springframework.sessiongroupId>
<artifactId>spring-session-data-redisartifactId>
dependency>
2.yml
spring:
redis:
host: 127.0.0.1
session:
store-type: redis
server:
port: ? (此处为唯一不同地方,模块需要不同的port)
模块一: 保存session到redis
@RestController
public class HelloHandler {
@RequestMapping("/test/spring/session/save")
public String testSession(HttpSession session) {
session.setAttribute("king", "hello-king");
return "数据存入Session域!";
}
}
测试数据如下: 可以看出数据已经保存到redis里面了
127.0.0.1:6379> keys *
1) "spring:session:expirations:159815802
2) "spring:session:sessions:expires:f67d
3) "spring:session:sessions:f67d16f2-851
127.0.0.1:6379> type spring:session:sess
0
hash
127.0.0.1:6379> hgetall spring:session:s
2320
1) "lastAccessedTime"
2) "\xac\xed\x00\x05sr\x00\x0ejava.lang.
01J\x00\x05valuexr\x00\x10java.lang.Numb
00\x00xp\x00\x00\x01t\x19\x88\x1d\xb6"
3) "maxInactiveInterval"
4) "\xac\xed\x00\x05sr\x00\x11java.lang.
\x00\x01I\x00\x05valuexr\x00\x10java.lan
\x02\x00\x00xp\x00\x00\a\b"
5) "sessionAttr:king"
6) "\xac\xed\x00\x05t\x00\nhello-king"
7) "creationTime"
8) "\xac\xed\x00\x05sr\x00\x0ejava.lang.
01J\x00\x05valuexr\x00\x10java.lang.Numb
00\x00xp\x00\x00\x01t\x19\x88\x1d\xb6"
模块二: 从redis获取session
@RestController
public class HelloHandler {
@RequestMapping("/test/spring/session/retrieve")
public String testSession(HttpSession session) {
String value = (String) session.getAttribute("king");
return value;
}
}
结果第一次报错:端口号不安全
更改后可以得到数据:
粉丝福利:108本java从入门到大神精选电子书领取
???
?长按上方锋哥微信二维码 2 秒 备注「1234」即可获取资料以及 可以进入java1234官方微信群
感谢点赞支持下哈
评论