Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC项目的可选redis会话存储_Java_Spring_Spring Mvc_Session - Fatal编程技术网

Java Spring MVC项目的可选redis会话存储

Java 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

我想使用spring会话将用户的会话数据存储在一个中心位置,比如Redis服务器,以便在不需要粘性会话的情况下实现负载平衡

Spring仅通过几行代码就支持这一点:

Config.java

@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”)