Java Spring MVC项目的可选redis会话存储
我想使用spring会话将用户的会话数据存储在一个中心位置,比如Redis服务器,以便在不需要粘性会话的情况下实现负载平衡 Spring仅通过几行代码就支持这一点: Config.javaJava Spring MVC项目的可选redis会话存储,java,spring,spring-mvc,session,Java,Spring,Spring Mvc,Session,我想使用spring会话将用户的会话数据存储在一个中心位置,比如Redis服务器,以便在不需要粘性会话的情况下实现负载平衡 Spring仅通过几行代码就支持这一点: Config.java @EnableRedisHttpSession public class Config { @Bean public JedisConnectionFactory connectionFactory() { return new JedisConnectionFac
@EnableRedisHttpSession
public class Config {
@Bean
public JedisConnectionFactory connectionFactory() {
return new JedisConnectionFactory();
}
}
public class Initializer
extends AbstractHttpSessionApplicationInitializer {
}
和Initializer.java
@EnableRedisHttpSession
public class Config {
@Bean
public JedisConnectionFactory connectionFactory() {
return new JedisConnectionFactory();
}
}
public class Initializer
extends AbstractHttpSessionApplicationInitializer {
}
然而,现在我在我所有的开发环境中,以及在我进行的每一次部署中,都与Redis紧密耦合。我可能只想在这个软件的一个高流量部署中使用Redis
我尝试使用Spring配置文件(将@Profile(“redissessions”)
添加到Config.java),但是我无法告诉servlet容器不选择Initializer.java(如果通过@Profile
排除Config.java,则会导致应用程序无法启动)
我想要的最终结果就好像我把
@Profile(“redissessions”)
放在初始值设定项上一样。java类(我认为这是不可能的)或是否有我可以交换JedisConnectionFactory的东西,它将委托给某种内部(或servlet容器)机制?在我正在进行的项目中,我必须这样做来处理Redis和no Redis之间的切换
此文件仅替换您拥有的“Initializer.java”文件,另一个文件仍然相同,但您必须添加@Profile(“nameOfYourProfileForUseRedis”)