session 会话共享
第一种: 第一种是使用容器扩展来实现,比如基于Tomcat的tomcat-redis-session-manager插件,基于Jetty的jetty-session-redis插件;这个方案的好处是对项目来说是透明的,无需改动代码,但是由于过于依赖容器,一旦容器升级或者更换意味着又得从新来过;第二种: 第二种是自己写一套Session会话管理的工具类,在需要使用会话的时候都从自己的工具类中获取,而工具类后端存储可以放到Redis中。这个方案灵活性很好,但开发需要一些额外的时间。第三种: 第三种是使用框架的会话管理工具,也就是我们要介绍的spring-session,可以理解是替换了Servlet那一套会话管理,既不依赖容器,又不需要改动代码,并且是使用spring-data-redis连接和操作redis,可以说是非常完美的解决方案看官方文档最详细基于XML的HttpSession示例连接到Redis 然后创建RedisHttpSessionConfiguration这个bean 中配置springSessionRepositoryFilter这个过滤器基于注解的HttpSession 示例编写一个类并注解为@EnableRedisHttpSession,在配置类的方法中配置@bean编写一个servlet容器初始化类@EnableRedisHttpSessionpublic class SpringSessionConfig { @Bean public JedisConnectionFactory connectionFactory(){ JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(); jedisConnectionFactory.setHostName("192.168.119.128"); jedisConnectionFactory.setPort(6379); jedisConnectionFactory.setPassword("123456"); return jedisConnectionFactory; }}public class ServletInitializer extends AbstractHttpSessionApplicationInitializer { public ServletInitializer() { super(SpringSessionConfig.class); } }