• Spring-Session 是 Spring 提供一套管理用户 Session 的实现方案,使用 Spring-Session 之后,默认 WEB 容器,比如 Tomcat,产生的 Session 将会被 Spring-Session 接管

    spring集成spring-session&spirng-data-redis xml配置方式

    1、jar包引用,修改pom.xml

    注意引用的版本,当前spring版本4.3.10.RELEASE
    1. <!-- spring session start-->
    2. <dependency>
    3. <groupId>org.springframework.session</groupId>
    4. <artifactId>spring-session</artifactId>
    5. <version>1.3.5.RELEASE</version>
    6. </dependency>
    7. <dependency>
    8. <groupId>org.springframework.data</groupId>
    9. <artifactId>spring-data-redis</artifactId>
    10. <version>1.8.1.RELEASE</version>
    11. </dependency>
    12. <dependency>
    13. <groupId>redis.clients</groupId>
    14. <artifactId>jedis</artifactId>
    15. <version>2.9.0</version>
    16. </dependency>
    17. <!-- spring session end-->

    2、添加redis.properties

    ```

    Redis数据库索引(默认为0)

    redis.database=6

    Redis服务器地址

    redis.hostname=127.0.0.1

    Redis服务器连接端口

    redis.port=6379

    Redis服务器连接密码(默认为空)

    redis.password=123456

    连接池最大连接数(使用负值表示没有限制)

    redis.maxTotal=300

    连接池最大阻塞等待时间(使用负值表示没有限制)

    redis.maxWait=10000

    连接池中的最大空闲连接

    redis.maxIdle=100

    连接池中的最小空闲连接

    redis.minIdle=10

    连接超时时间(毫秒)

    redis.timeout=10000

最大过期时间,默认 30 分钟 (秒)

redis.maxInactiveIntervalInSeconds=86400

redis 的 session 命名空间,默认是 spring:session + namespace + :

redis.namespace=

  1. <a name="yCTJl"></a>
  2. ## 3、修改applicationContext.xml
  3. ```xml
  4. <!-- Spring-Session 配置开始 -->
  5. <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
  6. <!-- 最大连接数 -->
  7. <property name="maxTotal" value="${redis.maxTotal}"></property>
  8. <!-- 最大等待时间 -->
  9. <property name="maxWaitMillis" value="${redis.maxWait}"></property>
  10. <!-- 最大空闲数 -->
  11. <property name="maxIdle" value="${redis.maxIdle}"></property>
  12. <property name="minIdle" value="${redis.minIdle}"></property>
  13. </bean>
  14. <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
  15. <property name="hostName" value="${redis.hostname}" />
  16. <property name="port" value="${redis.port}" />
  17. <property name="password" value="${redis.password}" />
  18. <property name="database" value="${redis.database}" />
  19. <property name="timeout" value="${redis.timeout}" />
  20. <property name="poolConfig" ref="jedisPoolConfig" />
  21. </bean>
  22. <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
  23. <property name="connectionFactory" ref="jedisConnectionFactory" />
  24. </bean>
  25. <!-- 将session放入redis -->
  26. <bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
  27. <property name="maxInactiveIntervalInSeconds" value="${redis.maxInactiveIntervalInSeconds}" />
  28. <property name="redisNamespace" value="${redis.namespace}" />
  29. </bean>
  30. <!-- Spring-Session 配置结束 -->

4、修改web.xml

filter放在第一位

  1. <!-- Spring Session配置开始 -->
  2. <filter>
  3. <filter-name>springSessionRepositoryFilter</filter-name>
  4. <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>springSessionRepositoryFilter</filter-name>
  8. <url-pattern>/*</url-pattern>
  9. </filter-mapping>
  10. <!-- Spring Session配置结束 -->