在SpringBoot使用Redis session时如何动态设定session过期时间

时间:2025-03-19 11:43:54

最近在做一个新项目的架构时遇到了一个问题:

我们使用redis sentinel来保存session,我们在SpringBoot中集成了spring-session-data-redis来实现分布式session。这里面有@EnableRedisHttpSession注解参数maxInactiveIntervalInSeconds来设定超时时间。但如何动态的通过配置文件来设定这个超时时间?

这里记录一下实现过程:

    @Value("${}")
    private int sessionTimeout = 1800;

    @Primary
    @Bean
    public RedisOperationsSessionRepository sessionRepository(
        @Qualifier("sessionRedisTemplate") RedisOperations<Object, Object> sessionRedisTemplate,
        ApplicationEventPublisher applicationEventPublisher) {
        RedisOperationsSessionRepository sessionRepository = new RedisOperationsSessionRepository(sessionRedisTemplate);
        (applicationEventPublisher);
        (sessionTimeout);
        return sessionRepository;
    }