最近寫項目,需要把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