网站首页 > 技术教程 正文
spring session作用:
说白了就是对session就行了一个第三方的管理。解决了session共享的问题。
为什么要使用spring-session:
在我们早期的工程中我们的工具比较简单,采用的是一个war包的形式所有的文件都是在一个工程中这样我们就可以直接通过servlet容器创建与管理,随着网站访问的人越来越多,服务器的压力越大的时候,我们可能就会采用集群的方式管理项目(把同一工程复制多份放到不同的不服务器),这样又会带来问题。所以我们会采用Nginx+tomcat的形式处理。我们就可以通过ip_hash来保证session。随着业务的增大我们会对项目进行拆分,把各个业务模块进行拆分部署(分布式)。这时候我们就需要通过redis/memcached等来进行session的管理。
具体步骤:
编写一个配置类,用来启用RedisHttpSession功能,并向Spring容器中注册一个RedisConnectionFactory。
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 7200)
publicclass RedisHttpSessionConfig {
@Bean
public RedisConnectionFactory connectionFactory() {
JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
return connectionFactory;
}
}
编写一个一个AbstractHttpSessionApplicationInitializer实现类,用于向Servlet容器中添加springSessionRepositoryFilter。
publicclass SpringSessionInitializer extends AbstractHttpSessionApplicationInitializer {
}
现在我们就基本配合完了,现在我们对上面这两段代码就行详解,首先我们带的疑问@EnableRedisHttpSession中到底做了什么操作,AbstractHttpSessionApplicationInitializer 的实现类为什么没有重写任何方法。
在步骤1中我们添加了@EnableRedisHttpSession注解并通过@Bean注解注册了一个RedisConnectionFactory到Spring容器中。在@EnableRedisHttpSession注解通过Import,引入了RedisHttpSessionConfiguration配置类。该配置类通过@Bean注解,向Spring容器中注册了一个SessionRepositoryFilter(SessionRepositoryFilter的依赖关系:SessionRepositoryFilter --> SessionRepository --> RedisTemplate --> RedisConnectionFactory)。
注意图中圈红的部分
注意圈红的部分
步骤2中AbstractHttpSessionApplicationInitializer 类不需要重载或实现任何方法,它的作用是在Servlet容器初始化时,从Spring容器中获取一个默认名叫sessionRepositoryFilter的过滤器类(之前没有注册的话这里找不到会报错),并添加到Servlet过滤器链中
猜你喜欢
- 2024-10-13 PHP 分布式集群中session共享问题以及session有效期的设置
- 2024-10-13 springboot集成springsession利用redis来实现session共享
- 2024-10-13 「SSO单点登录」分布式Session存在问题 spring-session的设计之妙
- 2024-10-13 【第一篇】Spring-Session实现Session共享入门教程
- 2024-10-13 如何实现集群中的 session 共享存储?什么是二进制协议?
- 2024-10-13 分布式环境session共享实战课程(分布式怎么实现session共享)
- 2024-10-13 SpringBoot一个依赖搞定session共享,没有比这更简单的方案了
- 2024-10-13 #高可用的并发解决方案nginx+keepalived(二)
- 2024-10-13 阿里十年架构师带你学分布式高性能架构Dubbo+Nginx+Session+RPC
- 2024-10-13 Spring Boot一个依赖搞定 Session 共享
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)