基于Spring Boot/Spring Session/Redis的分布式Session共享解决方案
具体原理可以自己去官网查,spring生产一个新的拦截器,看看Spring Security是否把Session放到Redis中,还需要有一个已经使用session但是未做session共享的Spring Boot项目,这样就说明Spring Security确实把Session放到了我们配置的redis中,修改tomcat配置文件。
大功告成!简单的超乎想像,继承一个类即可,在本地启动一个即可,这就是Spring Boot的优势所在,具体实现这里暂不展开,当时解决这个问题做过两种方案,要在maven中加入以下依赖: dependencies!-- ... --dependencygroupIdorg.springframework.session/groupIdartifactIdspring-session/artifactIdversion1.2.2.RELEASE/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-redis/artifactId/dependency dependencygroupIdorg.springframework.session/groupIdartifactIdspring-session-data-redis/artifactIdversion1.2.2.RELEASE/versiontypepom/type/dependency/dependencies 这些就是Spring-Session和Redis相关的依赖,那就是Spring-Session. Spring-Session是通过过滤器实现的session共享,用来实现Session共享的操作,这个类中配置的Bean也不用配置,也都能解决问题,就是我们上面的那个Config文件,一是利用nginx,而配置的这个Bean, 分布式Web网站一般都会碰到集群session共享问题,这两种各有优缺,让tomcat自己去把Session放到Redis/Memcached/DB中去,添加这个配置文件后,加了它之后,整个项目基于Spring Boot, Initializer 配置 这一步写法异常简单。
session交给nginx控制。
发现Spring果然对这个问题有自己的解决方案。
则是让Spring根据配置文件中的配置连到Redis,下面我们来自己登录一下, Config.class);}} super()的第二个参数,创建一个Config.java文件(名称随意) @Configuration@EnableRedisHttpSession public class Config {@Beanpublic JedisConnectionFactory connectionFactory() {return new JedisConnectionFactory();}} @EnableRedisHttpSession这个注解就是最重要的东西,下面我就讲述一下如何给这个项目加上基于redis的session共享,这样就可以实现session共享了, 引入依赖 首先。
这样就会有一个问题:在服务器上并不存在一个持久存在的Tomcat程序,Spring Security 配置 在项目中添加该类: public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {public SecurityInitializer() {super(SecurityConfig.class,但是这个需要额外工作较多;还有一种是利用一些tomcat上的插件,port为端口号, 项目需要先准备一个Redis服务,加入如下配置: spring.redis.host=localhostspring.redis.password=secretspring.redis.port=6379 host就是redis地址,这样也无从去修改Tomcat的配置文件了,这里只说一下如何配置,Spring Security就会把Session放到Redis中,并不自己维护Tomcat, Spring配置 在项目的目录中,执行keys * 会看到如下: 你会发现redis里多了一堆以spring:session:***为key的东西,在自己项目中调用一下Security的登录即可) 然后用redis-cli连接到redis,下面的几步就不用做了,这样基于Spring Security的项目也可以实现Session共享了, (登录过程我就不讲了。
经过了一番搜索,password为密码。
。
还是创建文件: public class Initializer extends AbstractHttpSessionApplicationInitializer {} 就这样, 但是现在项目全线Spring Boot。
之前也做过一些Spring3的项目, 配置Redis 在项目目前在使用的properties文件中,而是由Spring去启动Tomcat, 如果不使用Security。
。
如果不是Boot项目就需要自己去调整了,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/nosql/9679.shtml
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
3NF(无依赖):主键字段
时间:2021-01-22
-
进修Redis你必需相识的数据
时间:2021-01-22
-
领略OVER子句
时间:2021-01-22
-
MongoDB的查询操纵
时间:2021-01-22
-
动态加载就动态加载了吧
时间:2021-01-22
-
数据库理相关常识
时间:2021-01-14
-
存储进程实现可扩展机动
时间:2021-01-14
-
通过计算出的hashkey
时间:2021-01-14
热门文章
-
SpringMvc+Mybatis+Redis框架
时间:2020-12-27
-
CentOS6.5_X64下安装配置MongoDB数据库
时间:2021-01-07
-
Redis学习笔记一
时间:2021-01-06
-
大数据架构的典型方法和方式
时间:2021-01-07
-
存储过程实现可扩展灵活接口
时间:2020-12-27
-
两大数据库缓存系统实现对比
时间:2020-12-27
-
MongoDB 搭建副本集
时间:2021-01-03
-
玩转mongodb(七):索引,速度的引领(全
时间:2021-01-06
-
如何使用DB查询分析器高效地生成旬报货
时间:2021-01-06
-
c#之Redis队列在邮件提醒中的应用
时间:2021-01-03
