14.6. Spring会话管理器(Spring Session Manager)

Redisson提供的Spring会话管理器(Spring Session Manager)实现了跨机Web会话共享的功能。

在每次调用HttpSession.setAttribute接口方法时,以每一条会话的字段属性(Attribute)为单位,将修改内容记录在Redis的一个Hash结构里。需要注意的是Redis服务端的notify-keyspace-events参数设置中需要包含Exg这三个字符。

使用方法:

  1. 首先请确保Spring Session library版本号为1.2.2+的依赖已经添加到了您的项目中:

    Maven

    1. <!-- for Redisson 2.x -->
    2. <dependency>
    3. <groupId>org.springframework.session</groupId>
    4. <artifactId>spring-session</artifactId>
    5. <version>1.3.2.RELEASE</version>
    6. </dependency>
    7. <!-- for Redisson 3.x -->
    8. <dependency>
    9. <groupId>org.springframework.session</groupId>
    10. <artifactId>spring-session-core</artifactId>
    11. <version>2.1.2.RELEASE</version>
    12. </dependency>

    Gradle

    1. // for Redisson 2.x
    2. compile 'org.springframework.session:spring-session:1.3.2.RELEASE'
    3. // for Redisson 3.x
    4. compile 'org.springframework.session:spring-session-core:2.1.2.RELEASE'
  2. 然后将@EnableRedissonHttpSession注释和Redisson实例添加到Spring的配置里:

    1. @EnableRedissonHttpSession
    2. public class Config {
    3. @Bean
    4. public RedissonClient redisson() {
    5. return Redisson.create();
    6. }
    7. }
  3. 然后提供一个启动器AbstractHttpSessionApplicationInitializer的扩展就行了:

    1. public class Initializer extends AbstractHttpSessionApplicationInitializer {
    2. public Initializer() {
    3. super(Config.class);
    4. }
    5. }