Apache Geode/Pivotal GemFire 版 Spring Session 2.0.5.RELEASE 和 2.1.0.M1 版本发布!

工程 | John Blum | 2018年8月30日 | ...

谨代表团队和社区,我很高兴地宣布 Apache Geode & Pivotal GemFire 版 Spring Session (SSDG) 2.0.5.RELEASE (**Apple**) 和 2.1.0.M1 (**Bean**) 版本正式发布。

SSDG 2.0.5.RELEASE 基于 Spring Session 2.0.5.RELEASE、Spring Data Kay-SR9 和 Spring Framework 5.0.8.RELEASE,可在 Maven Central 获取。

SSDG 2.1.0.M1 基于 Spring Session 2.1.0.M2、Spring Data Lovelace-RC2 和 Spring Framework 5.1.0.RC2,可在 Spring libs-milestone 获取。

这两个版本都带来了一种新的方式来配置 Spring Session,使用 Apache GeodePivotal GemFire,甚至 Pivotal Cloud Cache (PCC) 来管理 Spring Boot Web 应用程序的 (HTTP) 会话状态。

目前,要使用 Spring Session 和 Apache Geode 或 Pivotal GemFire 作为提供程序启用 (HTTP) 会话状态管理,您需要在 Spring Boot 应用程序类路径中包含 org.springframework.session:spring-session-data-geodeorg.springframework.session:spring-session-data-gemfire,然后在应用程序的一个 @Configuration 类上声明 @EnableGemFireHttpSession 注解,如下所示

@SpringBootApplication
@EnableGemFireHttpSession(maxInactiveIntervalSeconds=600)
public class MyWebApplication {

  public static void main(String[] args) {
    SpringApplication.run(MyWebApplication.class, args);
  }
...
}

@EnableGemFireHttpSession 注解包含多个属性,用于更改会话管理策略的配置(例如过期时间;如上所示),以及 Apache Geode 或 Pivotal GemFire 使用的数据管理策略和索引,以有效地管理会话状态。

但是,所有这些属性都必须硬编码。如果您想根据环境在部署期间更改配置怎么办?也许您想使用 Spring 配置文件来更改配置。

现在,您可以通过两种不同的方式在使用 Apache Geode 或 Pivotal GemFire 时动态配置 Spring Session。

使用属性进行配置

Apache Geode/Pivotal GemFire 版 Spring Session 现在使您可以使用众所周知的已发布属性来配置会话管理和 Apache Geode 或 Pivotal GemFire。

@EnableGemFireHttpSession 注解属性本身记录了所有众所周知的已发布属性。

例如,要更改会话过期超时,您可以在 Spring Boot application.properties 文件中指定以下属性,如下所示

#application.properties

spring.session.data.gemfire.session.expiration.max-inactive-interval-seconds=600
...

有关使用属性配置 SSDG 的更多详细信息,请参阅 文档

使用配置器进行配置

与 Spring Web MVC 的 WebMvcConfigurer 回调接口类似,Apache Geode/Pivotal GemFire 版 Spring Session 提供了 SpringSessionGemFireConfigurer 回调接口来调整 Spring Session 配置的各个方面。

例如,要设置会话过期超时,只需声明以下内容

@Configuration
class SpringSessionGemFireConfiguration {

  @Bean
  SpringSessionGemFireConfigurer sessionExpirationConfigurer() {

    return new SpringSessionGemFireConfigurer(
        @Value("${spring.session.timeout:600}") int sessionTimeout) {

      @Override
      public int getMaxInactiveIntervalInSeconds() {
        return sessionTimeout;
      }
    };
  }
  ...
}

如上所示,配置器的配置甚至可以使用 Spring 的 @Value 注解从其他属性派生。您可以将不同的配置器 bean 定义与不同的 Spring 配置文件结合使用,等等。

有关使用配置器配置 SSDG 的更多详细信息,请参阅 文档

反馈

任何反馈和/或贡献都将受到高度赞赏和欢迎。您可以通过以下常用渠道联系我们:问题 | PR | StackOverflow

谢谢!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加快您的进度。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部