spring session

using spring session

为实现分布式部署,实现session共享,即使在开发环境中经常重启服务已不用担心重新登录的问题。

方案选择

方案一:在容器上做配置

方案二:在应用上做配置

考虑到上线后容器可能会更换,或版本不容带来的问题,采用第二种方案

配置

添加依赖

     <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.2.0.RC2</version>
    </dependency>

在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>

在spring配置中添加

    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <property name="hostName" value="${redis.host}"/>
    <property name="timeout" value="${redis.timeout}"/>
</bean>

启动项目,检查redis中session存储及过期时间。