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

    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. }