网站首页 > 技术教程 正文
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 共享
你 发表评论:
欢迎- 最近发表
-
- Oracle 在其新的 Linux 内核中引入了热补丁功能
- CentOS 7.6下安装Oracle 11.2.0.4
- ORACLE体系 - 2(oracle体系讲解)
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
- Hadoop自学系列集(二) ---- CentOS下安装JDK
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 搭建Oracle数据库服务器(oracle服务器创建用户)
- OGG同步到Kafka(oggforbigdata到kafka)
- oracle是什么软件?(oracle是干什么用的)
- 脚本化修改Oracle用户的密码以及执行sql(增删改查等)
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)