项目采用spring+struts2+hibernate,为了解决单点故障问题,现在需要做集群部署,解决的第一个问题session共享。为了方便简单于是采用了spring-session,项目原来已经集成了redis,所以在配置上,只需要加入spring-session相关即可。不过这里涉及到放置位置问题,顺序搞错了,spring-session就无法起作用了。个人也放错过,所以在这里记录下。
1、加入spring-session 库,我们项目采用jar包,直接放入就可以了。
2、在web.xml添加设置:建议放置所有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>
3、在applicationContext.xml加入配置,建议放在redis配置之前,
<bean id="redisHttpSessionConfiguration"
class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
<property name="maxInactiveIntervalInSeconds" value="1800"/>
</bean>
由于详细配置网上很多文章,这里只是提示一些放置顺序问题,有可能导致项目无法启动,spring-session无法共享