领先一步
VMware 提供培训和认证,加速您的进步。
了解更多对于与 Apache Geode M3 发布公告相关的延迟,我向 Spring 和 Apache Geode 社区表示歉意,但我非常激动和高兴地在此之后发布了 Apache Geode 1.0.0-incubating.M3 的 Spring Data。
您可以通过在应用的 Maven 或 Gradle 构建文件中包含以下依赖项来从 Maven Central 获取包...
<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 俱乐部会议上的演讲。
问题的根源在于 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 上与我们联系。
谢谢大家!