好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SpringSessionRedis配置及发现的问题讲解

最近写项目,需要把session放入redis中,来实现分布式。我本来要用tomcat部署redis这种方法,但是依赖于容器了。无意中发现了springsession,这可挺不错的,写完了发现不好用,问度娘也没弄明白,最后我写了2个demo一个springmvc的,一个spring整合struts2的,发现springsession需要springmvc的支持。也就是说我的项目用不了了。

先说说springsession的配置吧:

一、maven中pom.xml文件中添加(选一种添加上就行):

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<span style= "white-space:pre" >    </span><!-- 1 、redis-整合-->

     <dependency>

       <groupid>org.springframework.session</groupid>

       <artifactid>spring-session-data-redis</artifactid>

       <version> 1.0 . 2 .release</version>

     </dependency>

     <!-- 2 、redis -->

     <dependency>

       <groupid>org.springframework.data</groupid>

       <artifactid>spring-data-redis</artifactid>

       <version> 1.4 . 2 .release</version>

     </dependency>   

     <dependency>

       <groupid>redis.clients</groupid>

       <artifactid>jedis</artifactid>

       <version> 2.5 . 2 </version>

     </dependency>

     <dependency>

         <groupid>org.springframework.session</groupid>

         <artifactid>spring-session</artifactid>

         <version> 1.0 . 2 .release</version>

     </dependency>

     <dependency>

        <groupid>org.apache测试数据mons</groupid>

        <artifactid>commons-pool2</artifactid>

        <version> 2.2 </version>

     </dependency>

二、在spring配置文件(applicationcontext.xml)中添加代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<span style= "white-space:pre" >  </span><!-- 自动扫描 -->

    <context:annotation-config/>

   <!-- 配置spring-session --> 

   <bean class = "org.springframework.session.data.redis.config.annotation.web.http.redishttpsessionconfiguration" > 

     <!-- 过期时间 100 分钟 -->

     <property name= "maxinactiveintervalinseconds" value= "6000" ></property>

   </bean> 

   <!-- redis连接池 -->

   <bean id= "jedispoolconfig" class = "redis.clients.jedis.jedispoolconfig" /> 

   <bean id= "jedisconnectionfactory" class = "org.springframework.data.redis.connection.jedis.jedisconnectionfactory" > 

     <property name= "hostname" value= "10.4.120.180" /> 

     <property name= "port" value= "6379" /> 

     <property name= "poolconfig" ref= "jedispoolconfig" /> 

   </bean>

三、在web.xml中添加过滤即可:

?

1

2

3

4

5

6

7

8

9

10

11

12

<span style= "white-space:pre" >  </span><!-- spring session的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-config>

     <session-timeout> 30 </session-timeout>

   </session-config>

这样就自动将session放入到reids库中了。

补充:

spring的版本为4.1.6以上

javax.servlet-api需要3.0.1版本以上

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/qq_26562641/article/details/53836860

查看更多关于SpringSessionRedis配置及发现的问题讲解的详细内容...

  阅读:19次