Spring Session Data Geode/GemFire 2.0.0.M2 发布

工程 | John Blum | 2017年10月6日 | ...

致 Spring 社区问候!

我很高兴地宣布 Apache Geode 的 Spring Session Data Geode 和 Pivotal GemFire 的 Spring Session Data GemFire 的第二个里程碑版本。

第二个里程碑版本带来了许多受欢迎的改进,包括

  • 升级到 Spring Framework 5.0.0.RELEASE。

  • 升级到 Spring Data Kay-RELEASE。

  • 升级到 Spring Session 2.0.0.M4。

  • 升级到 Spring Boot 2.0.0.M4。

  • 添加了对 Pivotal GemFire 和 Apache Geode PDX 序列化 的支持。

  • 引入了一个新的 序列化框架 和适配器,用于 Pivotal GemFire/Apache Geode 的 数据序列化 和 PDX 框架。

这两个工件都可以从 Springlibs-milestone 存储库中使用 Maven 下载…

  <dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-geode</artifactId>
    <version>2.0.0.M2</version>
  </dependency>

或者,使用 Gradle…

compile 'org.springframework.session:spring-session-data-geode:2.0.0.M2

要将 Spring Session 与 Pivotal GemFire 一起使用,只需将工件从 spring-session-data-geode 切换到 spring-session-data-gemfire 即可。版本保持不变。

从数据序列化到 PDX

许多用户一直要求 Pivotal GemFire 和 Apache Geode 的 Spring Session 支持 PDX 序列化。鉴于 PDX 具有很高的“可移植性”,这很有意义,如 参考指南 中进一步解释。

PDX 的主要优势之一是,您不需要在集群中服务器的类路径上使用 Pivotal GemFire 或 Apache Geode 的 Spring Session 即可在 Spring Boot、使用客户端/服务器拓扑的 GemFire/Geode 缓存客户端应用程序中使用 Spring Session。实际上,您甚至不需要将存储在 (HTTP) Session 中并持久化到集群中 GemFire/Geode 服务器的应用程序域对象类放在服务器的类路径上。

Spring Session Data GemFire/Geode 现在默认使用 PDX。但是,只需在 @EnableGemFireHttpSession 注解中切换 bean 引用,即可轻松地在 数据序列化 和 PDX 之间切换。

OOTB,Spring Session Data GemFire/Geode 代表用户注册了 2 个 bean,分别实现了每个 GemFire/Geode 序列化策略。

要明确声明希望启用了 Spring BootSpring Session 的应用程序使用 PDX 序列化,请在 @EnableGemFireHttpSession 注解中将新的 sessionSerializerBeanName 属性设置为 GemFireHttpSessionConfiguration.SESSION_PDX_SERIALIZER_BEAN_NAME

@SpringBootApplication
@EnableGemFireHttpSession(sessionSerializerBeanName =
    GemFireHttpSessionConfiguration.SESSION_PDX_SERIALIZER_BEAN_NAME
class Application {
  ...
}

要使用 数据序列化 并利用 增量,请将 sessionSerializerBeanName 设置为 GemFireHttpSessionConfiguration.SESSION_DATA_SERIALIZER_BEAN_NAME

@SpringBootApplication
@EnableGemFireHttpSession(sessionSerializerBeanName =
    GemFireHttpSessionConfiguration.SESSION_DATA_SERIALIZER_BEAN_NAME
class Application {
  ...
}

有关在 Spring Session 和 Pivotal GemFire 或 Apache Geode 中使用 PDX 的更多详细信息,请参阅 参考指南

序列化框架

Spring Session Data GemFire/Geode 引入了一个新的 SessionSerializer 接口,允许用户自定义如何将 Session 序列化到 Pivotal GemFire 或 Apache Geode。

interface SessionSerializer<T, IN, OUT> {

  void serializer(T session, OUT out);

  T deserialize(IN in);

  boolean canSerialize(Class<?> type);
}

用户可以提供此接口的自定义实现,将其注册为 Spring 上下文中的 bean,将 sessionSerializerBeanName 属性设置为自定义 SessionSerializer bean 定义的名称,然后 Spring Session Data GemFire/Geode 将适配并注册此 bean 作为 Pivotal GemFire 或 Apache Geode 中的 PdxSerializer

例如…

@SpringBootApplication
@EnableGemFireHttpSession(sessionSerializerBeanName = "customSerializer")
class Application {

  @Bean
  SessionSerializer<Session, PdxReader, PdxWriter> customSerializer() {
    // return an instance of a custom `SessionSerializer` implementation
  }
}

这仅仅是冰山一角。更多详细信息可以在 参考指南 中找到有关新的 序列化框架

反馈

与往常一样,非常感谢您对本版本的任何反馈。用户可以在 StackOverflow 上联系我们,提交 GitHub 问题,或在下方分享您的评论。您也可以在 Twitter 上联系我,@john_blum

SpringOne Platform 2017

还要确保查看今年 SpringOne Platform 2017 的阵容。这将是值得纪念的一年,有如此多的精彩内容…Spring Framework 5 以及对 JDK 9 的早期支持、响应式函数式 编程、与 JUnit 5 和 Kotlin 的集成。如此多的酷炫内容可以学习!

获取 Spring 时事通讯

与 Spring 时事通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部