最近写项目,需要把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.commons</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