领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多对于相对于 Apache Geode M3 发布公告 的延迟,我向 Spring 和 Apache Geode 社区表示歉意,但我很高兴并欣喜地宣布发布适用于 Apache Geode 1.0.0-incubating.M3 的 Spring Data。
您可以从 Maven Central 获取这些组件,方法是在您的应用程序 Maven 或 Gradle 构建文件中包含以下依赖项...
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-geode</artifactId>
<version>1.0.0.APACHE-GEODE-INCUBATING-M3</version>
</dependency>
compile 'org.springframework.data:spring-data-geode:1.0.0.APACHE-GEODE-INCUBATING-M3'
包含 spring-data-geode
依赖项将传递性地引入所有必需的 Apache Geode 工件,因此您可以立即开始构建使用 Apache Geode 的 Spring 应用程序。
虽然 Apache Geode M2 和 M3 之间的功能变化不大(主要是 错误修复),但 *Spring Data Geode* 中发生了很多变化。 更改。其中一个关键特性超越了其他所有特性。
因为 Apache Geode(以及扩展的 Pivotal GemFire)的重点始终是提供足够的函数广度和灵活性来解决各种 复杂客户需求和用例(点击“用例”),因此它使用户难以尽快且轻松地启动和运行。并且,虽然它具有更强大的一致性保证,并且通常具有更好的性能,但在使用替代的、可比的解决方案时,很难与“开箱即用”的体验竞争。
要深入了解问题以及我们如何专注于为 Apache Geode 和 Pivotal GemFire 解决问题,请查看我在 8 月份的 Apache Geode Clubhouse 会议 中的演讲。
问题在于 Apache Geode 缺乏一种有见地且一致的编程/配置模型,尤其是在应用程序开发方面。所以实际上,我们无需再进一步查看 Spring Framework。但是,这仍然留下了“观点”。
再一次,Spring 为我们提供了 Spring Boot,它是一款多么美丽的工程杰作,如此优雅,如此简单。并且,正如您将在下面看到的,它确实启发了 *Spring Data Geode* 的工作。
过去,Spring 开发人员必须使用 XML 或 Java 配置 配置 Geode,然后使用引导机制(如 Gfsh 或 Spring Boot)启动并运行。这甚至已在 指南 中进行了演示。直到现在,两者都没有真正比另一个有显著优势。
从这个里程碑版本开始,*Spring Data Geode* 将包含一组新的 注释,其形式/功能非常类似,并且与 Spring Boot 注释相辅相成,但专门用于 SD/Apache Geode,并且只有一个简单的目标...
简化“开箱即用”的体验,以便用户能够尽快且轻松地启动并运行
因此,让我们再次使用 XML 和 Java 配置示例...
@SpringBootApplication
@PeerCacheApplication
@WithReplicateRegions("myDistributedMap")
public class ExampleApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class, args);
}
@Resource(name = "myDistributedMap")
private Region<String, String> myDistributedMap;
@Override
public void run(String... strings) throws Exception {
assertThat(myDistributedMap.put("key", "value")).isNull();
assertThat(myDistributedMap.get("key")).isEqualTo("value");
assertThat(myDistributedMap.putIfAbsent("somekey", "somevalue")).isNull();
assertThat(myDistributedMap.replace("key", "value", "newvalue")).isTrue();
}
}
非常简单。此示例相当简单,但您可能会想象一些应用程序配置(例如 示例;只需按照层次结构操作)会很快变得非常复杂。
这只是一个预告,敬请期待更多内容。
将会有许多不同的注释以一致且强大的方式解决所有独特的问题,提供开箱即用的默认值以及许多方便的“启用”功能。此新的 *注释* 配置模型的许多细节仍在开发中,例如适当的示例和文档。
在此期间,我已开始创建 参考实现,该实现将展示使用 Spring 和 Apache Geode 结合使用(如新的 注释配置模型)的许多功能和功能。
期待我们很快发布更多信息。
与往常一样,非常欢迎您的反馈,您可以在 JIRA 或 StackOverflow 上与我们联系。
感谢大家!