保持领先
VMware 提供培训和认证,助您快速前进。
了解更多我代表团队和社区很高兴地宣布,用于 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 Geode 或 Pivotal GemFire,甚至 Pivotal Cloud Cache (PCC) 管理 Spring Boot Web 应用程序的 (HTTP) Session 状态时。
目前,要使用 Apache Geode 或 Pivotal GemFire 作为提供者来启用 Spring Session 的 (HTTP) Session 状态管理,您需要在 Spring Boot 应用程序的类路径中包含 org.springframework.session:spring-session-data-geode
或 org.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 注解包含几个属性,用于修改您的 Session 管理策略(例如过期;如上所示)以及 Apache Geode 或 Pivotal GemFire 用来有效管理 Session 状态的数据管理策略和索引。
然而,所有这些属性都必须硬编码。如果您想在部署期间根据环境更改配置怎么办?也许您想使用 Spring profiles 来改变配置。
现在,当使用 Apache Geode 或 Pivotal GemFire 时,您可以通过两种不同的方式动态配置 Spring Session。
Apache Geode/Pivotal GemFire 的 Spring Session 现在允许您使用众所周知的已发布的属性来配置 Session 管理和 Apache Geode 或 Pivotal GemFire。
@EnableGemFireHttpSession
注解属性本身记录了所有众所周知的已发布的属性。
例如,要更改 Session 过期超时时间,您可以在 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 配置的各个方面。
例如,要设置 Session 过期超时,只需声明以下内容
@Configuration
class SpringSessionGemFireConfiguration {
@Bean
SpringSessionGemFireConfigurer sessionExpirationConfigurer() {
return new SpringSessionGemFireConfigurer(
@Value("${spring.session.timeout:600}") int sessionTimeout) {
@Override
public int getMaxInactiveIntervalInSeconds() {
return sessionTimeout;
}
};
}
...
}
如上所示,Configurer 的配置甚至可以使用 Spring 的 @Value
注解从其他属性派生。您可以将不同的 Configurer bean 定义与不同的 Spring profiles 等等结合使用。
关于使用 Configurer 配置 SSDG 的更多详细信息,请参阅文档。
任何反馈和/或贡献都非常感谢和欢迎。您可以通过以下常用渠道联系我们:问题 | PR | StackOverflow。
谢谢!