之前写过两篇springboot分布式中的session共享解决方案,参考
《springboot中redis的使用和分布式session共享问题》和 《再谈session共享》 经过同事共同研究,原来springboot提供另外一种解决方案:0行代码解决方案
1、配置文件
spring.session.redis.namespace=自己定义的命名空间 spring.session.store-type=redis
是的,只需要这两行即可,不再需要其他配置或者代码实现,测试方法见上面两篇文章。
TIPS:1、使用redis解决session共享,那么就不能使用其他的session管理器,比如shiro自带的sessionManger,否则会导致以上配置失效
2、上面配置中没有提供超时配置,redis超时可以使用server.session.timeout=1800实现
附: SPRING SESSION其他配置 # SPRING SESSION (SessionProperties)
spring.session.hazelcast.flush-mode=on-save
spring.session.hazelcast.map-name=spring:session:sessions
spring.session.jdbc.initializer.enabled=
spring.session.jdbc.schema=
spring.session.jdbc.table-name=
spring.session.mongo.collection-name=sessions
spring.session.redis.flush-mode=on-save
spring.session.redis.namespace=
sessions.spring.session.store-type=