领先一步
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) 会话状态。
目前,要使用 Spring Session 和 Apache Geode 或 Pivotal GemFire 作为提供程序启用 (HTTP) 会话状态管理,您需要在 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 注解包含多个属性,用于更改会话管理策略的配置(例如过期时间;如上所示),以及 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。
谢谢!