欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Session实现分布式session的简单示例

程序员文章站 2024-02-22 11:21:34
前面有用 tomcat-redis-session-manager来实现分布式session管理,但是它有一定的局限性,主要是跟tomcat绑定太紧了,这里改成用sprin...

前面有用 tomcat-redis-session-manager来实现分布式session管理,但是它有一定的局限性,主要是跟tomcat绑定太紧了,这里改成用spring session来管理分布式session,spring session就完全实现了与具体的容器无关,如果需要了解如何用tomcat-redis-session-manager实现分分布式session,请看我之前的文章,下面正式进入主题,spring session项目搭建。

1. 引入spring session maven依赖

<!-- spring session begin -->
  <dependency>
   <groupid>redis.clients</groupid>
   <artifactid>jedis</artifactid>
   <version>2.9.0</version>
  </dependency>
  <dependency>
   <groupid>org.springframework.data</groupid>
   <artifactid>spring-data-redis</artifactid>
   <version>1.5.2.release</version>
  </dependency>
  <dependency>
   <groupid>org.springframework.session</groupid>
   <artifactid>spring-session</artifactid>
   <version>1.3.1.release</version>
  </dependency>
  <!-- spring session end -->

2. spring配置文件中添加spring session相关配置(这里重点体现spring session,因此并没有列出redis相关配置,需要可参考实例代码)

 <!-- spring session begin -->
 <bean id="redishttpsessionconfiguration"
  class="org.springframework.session.data.redis.config.annotation.web.http.redishttpsessionconfiguration">
  <property name="maxinactiveintervalinseconds" value="1800" />
 </bean>
 <!-- spring session end -->

3. 在web.xml中配置spring session的filter,它必须放在所有filter的前面

<!-- 添加一个session代理filter,来包装servlet的getsession,需要放在所有filter链最前面 -->
 <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>

这几乎就是所有的步骤了,是不是感觉很简单呢?赶快自己动手试一试吧,看起来高大上的分布式session就这样被spring session搞定了!

下面是我的github源码地址:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!