spring session,集群环境下的session共享解决方案

来源:互联网 发布:大学生兼职平台知乎 编辑:程序博客网 时间:2024/05/19 02:04

之前在集群环境下需要解决session共享的问题,更多的时候我们是使用servlet容器例如tomcat提供的集群配置来解决session的复制问题。今天介绍一种简单的解决方案。

http://docs.spring.io/spring-session/docs/current/reference/html5/guides/httpsession.html#updating-dependencies
这里有关spring session的详细介绍,其使用起来也相当简单。

1:在pom文件中引入spring session的相关依赖

<dependency>                <groupId>org.springframework.session</groupId>                <artifactId>spring-session-data-redis</artifactId>                <version>1.1.1.RELEASE</version>                <type>pom</type>        </dependency>        <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-web</artifactId>                <version>4.2.5.RELEASE</version>        </dependency></dependencies>

2 由于官网给出的是一种java代码配置的方式,在项目中,我们更多的是使用配置的方式来进行spring session的配置。因而我们需要搜索相关资料进行配置。
1:在web.xml的配置文件中加载spring-session的配置文件,比如spring-session.xml。

 <filter>        <filter-name>springSessionRepositoryFilter</filter-name>        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>    </filter>    <filter-mapping>        <filter-name>springSessionRepositoryFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>

注意事项:这个filter的配置应该在web工程的其他filter配置之前。

    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>            classpath:spring-session.xml        </param-value>    </context-param>    <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener>

加载该配置文件,可以和其他配置文件一起加载,以逗号隔开即可。例如:

<param-value>classpath:spring-servlet.xml,classpath:customer.xml</param-value>

2:在spring-session.xml的配置文件中配置相关的信息。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans.xsd       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context.xsd">    <context:annotation-config/>    <!--springSession 配置-->    <bean id="sessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">        <!--修改session的有效时间-->        <property name="maxInactiveIntervalInSeconds" value="1800"></property>    </bean>    <bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">        <property name="hostName" value="xxx.xx.xxx.xx"></property>        <property name="port" value="6379"></property>    </bean></beans>

注意事项:如上的配置需要开启对应的redis服务。有关redis的学习,网上教材很多,在这里不加赘述。


个人理解:由于spring-session 只是将原生的session以指定的方式进行存储,至于session的操作,它没有什么修改,无侵入,装饰者模式。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米5x后盖松动怎么办 苹果手机没电了怎么办 荣耀9的后盖裂了怎么办 手机一直在开机画面怎么办华为 华为手机一直显示开机画面怎么办 华为p7手机开不了机怎么办 华为荣耀8弯了怎么办 手机壳掉漆了怎么办 华为5a手机音量小怎么办 华为5a手机声音小怎么办 苹果屏幕磨花了怎么办 白色磨砂手机壳脏了怎么办 胶皮手机壳变黄怎么办 手机壳边缘黑了怎么办 手机壳磨黑了怎么办 iphon8原装后壳碎裂怎么办 皮的手机壳发黄怎么办 荣耀手机一直在开机画面怎么办 玻璃手机壳碎了怎么办 华为6x信号不好怎么办 昂达平板v819i刷成砖了怎么办 华为5x忘记密码怎么办 荣耀8开不了机怎么办 华为5s死机了怎么办 华为重启后忘了解锁密码怎么办 华为mate.9上网速度慢怎么办 华为mate10上网速度慢怎么办 四核豌豆2变砖怎么办 苹果32g不够用怎么办 移动4g网络卡怎么办 移动4g网非常卡怎么办 移动4g卡网速慢怎么办 手机移动4g网卡怎么办 华为手机摄像头进灰怎么办 美图t8忘记密码怎么办 华为mate7忘记开机密码怎么办 华为mate9开机密码忘记怎么办 华为手机系统更新失败怎么办 mate9系统升级后耗电快怎么办 华为荣耀手机耗电快怎么办 荣耀10手机拍照不清晰怎么办