又双叒叕来session共享

之前写过两篇springboot分布式中的session共享解决方案,参考
《springboot中redis的使用和分布式session共享问题》和 《再谈session共享》
经过同事共同研究,原来springboot提供另外一种解决方案:0行代码解决方案

配置文件

spring.session.redis.namespace=自己定义的命名空间
spring.session.store-type=redis

是的,只需要这两行即可,不再需要其他配置或者代码实现,测试方法见上面两篇文章。

TIPS:1、使用redis解决session共享,那么就不能使用其他的session管理器,比如shiro自带的sessionManger,否则会导致以上配置失效
2、上面配置中没有提供超时配置,redis超时可以使用server.session.timeout=1800实现

附springboot提供另外的session管理机制

# SPRING SESSION ([SessionProperties](https://github.com/spring-projects/spring-boot/tree/v1.5.9.RELEASE/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/session/SessionProperties.java))
spring.session.hazelcast.flush-mode=on-save # Sessions flush mode.
spring.session.hazelcast.map-name=spring:session:sessions # Name of the map used to store sessions.
spring.session.jdbc.initializer.enabled= # Create the required session tables on startup if necessary. Enabled automatically if the default table name is set or a custom schema is configured.
spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/schema-@@platform@@.sql # Path to the SQL file to use to initialize the database schema.
spring.session.jdbc.table-name=SPRING_SESSION # Name of database table used to store sessions.
spring.session.mongo.collection-name=sessions # Collection name used to store sessions.
spring.session.redis.flush-mode=on-save # Sessions flush mode.
spring.session.redis.namespace= # Namespace for keys used to store sessions.
spring.session.store-type= # Session store type.

你可能感兴趣的:(又双叒叕来session共享)