我正在使用 spring-session + redis,如此处所述:http: //docs.spring.io/spring-session/docs/current/reference/html5/guides/httpsession-xml.html
如何配置 RedisHttpSessionConfigure 以便本地开发不需要 redis 并且应用程序将简单地默认为容器会话处理?
我正在使用 spring-session + redis,如此处所述:http: //docs.spring.io/spring-session/docs/current/reference/html5/guides/httpsession-xml.html
如何配置 RedisHttpSessionConfigure 以便本地开发不需要 redis 并且应用程序将简单地默认为容器会话处理?
通常不建议这样做,因为您的开发环境与生产环境不同。将您的开发机器指向一个 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>
关键是要确保你的开发环境也有一个实现过滤器的 Bean,名为springSessionRepositoryFilter
. 在这个例子中,我使用CharacterEncodingFilter
了 which 应该什么都不做,因为 encoding 属性没有设置,但可以随意替换为你喜欢的任何内容。
接下来你需要做的是激活你的环境。例如,您可以使用
-Dspring.profiles.active="production"