我想尝试 Spring Session 集成,以便将 Websocket session 与 http session 链接起来。但我还没有准备好全面使用 Radis/Hazlecast。我的服务器使用 Tomcat 复制。只有 MapSessionRepository 会做什么? Tomcat 似乎无法复制此 session 。
@EnableSpringHttpSession
...
@Override
protected Filter[] getServletFilters() {
return new Filter[] { new DelegatingFilterProxy("springSessionRepositoryFilter")};
}
...
@Bean
public SessionRepository<ExpiringSession> sessionRepository( ) {
return new MapSessionRepository();
}
最佳答案
使用默认构造函数实例化 MapSessionRepository
将使用 ConcurrentHashMap
来存储 session 。这意味着 session 存储是您当前 JVM 的本地存储。
这样的配置对于开发/测试目的可能很有用,但它没有利用 Spring Session 在 JVM 之外存储 session 的能力,这是关键特性之一。
关于 Tomcat 复制,注意 Spring Session 的核心概念是以容器中立的方式存储 session 。
关于没有 Redis 的 Spring Session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38753135/