泰安专业的网站制作,域名注册商查询工具,wordpress分类别名获取文章,华为网站搭建2019独角兽企业重金招聘Python工程师标准 目前市面上实现session共享的方案有很多#xff0c;其中比较常用的是使用Tomcat、Jetty等web服务器提供的session共享功能#xff0c;以此将session内容统一存放在数据库#xff08;如mysql#xff09;或者缓存… 2019独角兽企业重金招聘Python工程师标准 目前市面上实现session共享的方案有很多其中比较常用的是使用Tomcat、Jetty等web服务器提供的session共享功能以此将session内容统一存放在数据库如mysql或者缓存redis中另外一种方案不依赖于servlet容器而是web应用代码层面上的实现而且操作极其简便只需要在已有项目基础上加入spring-session框架和redis就可实现session共享。 前一种session共享方案依赖servlet容器如部署使用的是tomcat时需要修改tomcat的相关配置后一种方案适用于发布容器不固定例如使用docker作为发布容器每次重新部署都会重新创建容器tomcat的配置也要重新修改相对比较麻烦。 本文主要讲述第二种session共享方案【maven项目为例】。 添加项目依赖 dependencygroupIdorg.springframework.data/groupIdartifactIdspring-data-redis/artifactIdversion1.7.3.RELEASE/version/dependencydependencygroupIdorg.springframework.session/groupIdartifactIdspring-session/artifactIdversion1.2.2.RELEASE/version/dependencydependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion2.9.0/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.4.2/version/dependency2.修改spring配置文件 添加以下配置代表spring-session将存放在redis中其中maxInactiveIntervalInSeconds表示session存放在redis的过期时间默认1800秒。 bean classorg.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfigurationproperty namemaxInactiveIntervalInSeconds value43200//bean添加redis配置 单节点redis bean classorg.springframework.data.redis.connection.jedis.JedisConnectionFactoryproperty namehostName value${redis.host} /property nameport value${redis.port} /property namepassword value${redis.password} //bean集群redis bean idsentinelConfig classorg.springframework.data.redis.connection.RedisSentinelConfigurationconstructor-arg namemaster value${redis.master} /constructor-arg namesentinelHostAndPortssetvalue127.0.0.1:2679/value!--配置redis哨兵--value127.0.0.1:2678/value/set/constructor-arg/beanbean classorg.springframework.data.redis.connection.jedis.JedisConnectionFactoryconstructor-arg refsentinelConfig /property namepassword value${redis.password}//bean3.修改web.xml 配置 filterfilter-namespringSessionRepositoryFilter/filter-namefilter-classorg.springframework.web.filter.DelegatingFilterProxy/filter-class/filterfilter-mappingfilter-namespringSessionRepositoryFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping到此所有工作均已完成启动项目即可检验session是否实现共享。 项目中使用的redis server版本必须2.8 。 喜欢的朋友可以关注我的公众号更多精彩分享尽在“Java实战”。 转载于:https://my.oschina.net/firstbing/blog/1559728