代码之家  ›  专栏  ›  技术社区  ›  Ker p pag

仅在生产上设置Spring会话Redis

  •  0
  • Ker p pag  · 技术社区  · 6 年前

    是否可以将Spring会话数据redis模块设置为on production 仅个人资料?

    @Profile 但是 AbstractHttpSessionApplicationInitializer 在设置 profile/environment

    NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' available

    当我尝试使用 @Values 它返回空值。

    @Value("${spring.profiles.active:local}")
    private String activeProfile; // result is null
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Ker p pag    6 年前

    我已经用计算机解决了这个问题 this article

    生产会话配置如下所示。

    @Configuration
    @ConditionalOnProperty(name = "spring.profiles.active", havingValue = "production")
    @EnableRedisHttpSession
    @ConfigurationProperties(prefix = "redis.db")
    public class ProductionSessionConfig {
    
        @Setter
        private String server;
        @Setter
        private Integer port;
    
        @Bean
        public JedisConnectionFactory connectionFactory() {
            //creates your own connection
            RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(server, port);
            return new JedisConnectionFactory(config);
        }
    
    }
    

    如果你不打算使用 spring-session-data-redis @ConditionalOnProperty 价值

    @SpringBootApplication(exclude = {SessionAutoConfiguration.class})