首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将用户会话从HttPsession迁移到Spring会话(Spring应用程序)

将用户会话从HttPsession迁移到Spring会话(Spring应用程序)
EN

Stack Overflow用户
提问于 2019-07-17 12:05:42
回答 1查看 1.3K关注 0票数 10

最近,我们开始使用spring会话作为会话管理器。我们的应用程序已经在生产中运行了8-10个月。有一个使用这个后端的移动应用程序。

当我将会话存储库更改为spring会话时,移动应用程序中的所有现有登录用户都将自动注销。然后他们将不得不再次登录。

是否存在将所有现有日志记录的用户会话迁移到Redis实例的问题。

EN

回答 1

Stack Overflow用户

发布于 2019-07-26 07:03:28

如果我的理解是正确的,那么迁移现有连接的答案是否定的,因为您正在更改后端连接。任何新用户都需要使用新的连接类实例化到应用程序的连接。根据我们在这里讨论的用户数量,可能允许当前连接的用户在httpsession上运行,并且允许所有新的连接在spring会话上运行。在映射所有现有的已连接用户时,要一直使用httpsession,直到他们的连接耗尽或断开,并管理拆分,以便新用户使用redis会话应用服务器。

如果上述情况并非如此,并且您正在寻找使用Spring会话的指南,那么:

首先,您将需要包含数据redis的spring会话模块,在这里可以找到: https://github.com/spring-projects/spring-session

然后,需要添加以下配置:

代码语言:javascript
运行
复制
@EnableRedisHttpSession 
public class Config {

    @Bean
    public LettuceConnectionFactory connectionFactory() {
        return new LettuceConnectionFactory(); 
    }

}

@EnableRedisHttpSession注释创建一个Spring,名称为springSessionRepositoryFilter,实现过滤器。过滤器负责替换由Spring会话支持的HttpSession实现。在这种情况下,Spring会话由Redis支持。我们创建一个将Spring会话连接到Redis的RedisConnectionFactory。我们将连接配置为连接到默认端口(6379)上的本地主机。有关配置Spring的更多信息,请参见参考文档。

,然后创建一个redis连接工厂:

代码语言:javascript
运行
复制
class AppConfig {

  @Bean
  public LettuceConnectionFactory redisConnectionFactory() {

    return new LettuceConnectionFactory(new RedisStandaloneConfiguration("server", 6379));
  }
}

来源: https://docs.spring.io/spring-session/docs/current-SNAPSHOT/reference/html5/#httpsession-redis

https://docs.spring.io/spring-data/data-redis/docs/2.2.0.BUILD-SNAPSHOT/reference/html/#reference

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57075420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档