2016-07-15 432 views
0

我使用Spring Boot 1.3.6和Spring Session以及Redis作为Session存储。我需要能够为运行时应用程序设置redisNamespace,而不是在代码中对其进行硬编码。这意味着我不能使用@EnableRedisHttpSession,因为这不是我可以通过applaction.yml文件设置的。如何在运行时配置Spring会话Redis redisNamespace

我已经更新了Spring Session到1.2.1.RELEASE以获得我需要的支持,但我似乎无法让系统通过配置来配置名称空间。我尝试在@EnableRedisHttpSession(redisNamespace)调用中使用SPEL,但这不起作用。我试图通过Autowired注入RedisHttpSessionConfiguration来设置它,而这似乎被忽略了。在另一个SO帖子中还有另一篇关于使用spring.session.redis.namespace作为application.yml中的一个属性的文章,但这不起作用。

任何建议/提示将不胜感激!

+0

请注意'spring.session。*'配置属性在Spring Boot 1.4中引入,因此它们在1.3中不可用。 OTOH'spring.session.redis.namespace'在Javvano的答案中提出的JVM属性是有效的,因为它[由Spring Session本身支持](https://github.com/spring-projects/spring-session/blob/master/spring-session /src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.java#L152)。 –

回答

1

我只是把一个-Dspring.session.redis.namespace=myKeyName加入VM参数。 它工作正常。

enter image description here

和我使用的弹簧引导v1.3.5.RELEASE和春季会议1.2.0.RELEASE。

相关问题