博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring session实现集群中session共享
阅读量:6569 次
发布时间:2019-06-24

本文共 1567 字,大约阅读时间需要 5 分钟。

本文转自:http://dorole.com/1422/

使用框架的会话管理工具,也就是本文要说的,可以理解是替换了Servlet那一套会话管理,既不依赖容器,又不需要改动代码,并且是用了spring-data-redis那一套连接池,可以说是最完美的解决方案。当然,前提是项目要使用Spring Framework才行。

  这里简单记录下整合的过程:

  如果项目之前没有整合过spring-data-redis的话,这一步需要先做,在maven中添加这两个依赖:

   

org.springframework.data
spring-data-redis
1.5.2.RELEASE
org.springframework.session
spring-session
1.0.2.RELEASE

 

 

  再在applicationContext.xml中添加以下bean,用于定义redis的连接池和初始化redis模版操作类,自行替换其中的相关变量。

     

 

  这里前面几个bean都是操作redis时候使用的,最后一个bean才是spring-session需要用到的,其中的id可以不写或者保持不变,这也是一个约定优先配置的体现。这个bean中又会自动产生多个bean,用于相关操作,极大的简化了我们的配置项。其中有个比较重要的是springSessionRepositoryFilter,它将在下面的代理filter中被调用到。maxInactiveIntervalInSeconds表示超时时间,默认是1800秒。写上述配置的时候我个人习惯采用xml来定义,官方文档中有采用注解来声明一个配置类。

  然后是在web.xml中添加一个session代理filter,通过这个filter来包装Servlet的getSession()。需要注意的是这个filter需要放在所有filter链最前面。

springSessionRepositoryFilter
org.springframework.web.filter.DelegatingFilterProxy
springSessionRepositoryFilter
/*

  这样便配置完毕了,需要注意的是,spring-session要求Redis Server版本不低于2.8。

  验证:使用redis-cli就可以查看到session key了,且浏览器Cookie中的jsessionid已经替换为session。

 

转载于:https://www.cnblogs.com/520playboy/p/6824855.html

你可能感兴趣的文章
前端面试通关指南
查看>>
npm install --save 、--save-dev 、-D、-S 的区别
查看>>
Gradle
查看>>
php实现网站访客数量统计的方法(简单实现,不能防刷新)
查看>>
浏览器标签栏logo添加
查看>>
制作首页的显示列表。
查看>>
Java-笔记17-复习
查看>>
第九周项目6-穷举法之谁是小偷
查看>>
PHP将图片转base64编码以及base64图片转换为图片并保存代码
查看>>
浙大pat甲级题目---Reversible Primes (20)
查看>>
SQL Server 2008读书笔记(1):安装和配置SQL Server 2008
查看>>
查找最近的共有祖先元素
查看>>
keepalive配置文件详解
查看>>
不要为了虚荣心而让孩子过早的学习人工智能
查看>>
【转】XAML实例教程系列 – 开篇
查看>>
SQL语句的一些总结
查看>>
计算机科学的科研评价问题
查看>>
12. Integer to Roman
查看>>
python 通过元类控制类的创建
查看>>
Poj(1182),种类并查集
查看>>