如果redis不在线,我如何配置RedisHttpSessionConfigure以进行回退

时间:2015-07-28 00:14:01

标签: spring redis spring-session

我使用的是spring-session + redis,如下所示: http://docs.spring.io/spring-session/docs/current/reference/html5/guides/httpsession-xml.html

如何配置RedisHttpSessionConfigure,以便对于本地开发,不需要redis,应用程序将默认默认为容器会话处理?

1 个答案:

答案 0 :(得分:1)

通常不推荐这样做,因为您的开发环境与生产环境不同。将您的开发机器指向Redis实例应该是非常简单的。

如果您需要支持,可以使用Spring profiles。例如,使用XML,您可以使用以下内容:

<beans profile="dev">
    <bean id="springSessionRepositoryFilter" class="org.springframework.web.filter.CharacterEncodingFilter"/>
</beans>

<beans profile="production">
    <context:annotation-config/>
    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>
    <bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"/>
</beans>

关键是确保您的开发环境还有一个实现名为springSessionRepositoryFilter的过滤器的Bean。在这个例子中,我使用CharacterEncodingFilter,因为没有设置编码属性,所以不应该做任何事情,但可以随意替换你喜欢的任何内容。

接下来您需要做的是activate your environments。例如,您可以使用

-Dspring.profiles.active="production"