- 文档构造
以下章节解释了 Spring Data 为 Apache Geode 提供的外围性能:
Bootstrapping Apache Geode with the Spring Container 形容了为配置、初始化和拜访 Apache Geode 缓存、区域和相干分布式系统组件提供的配置反对。
应用 Apache Geode API 解释了 Apache Geode API 与 Spring 中可用的各种数据拜访性能之间的集成,例如基于模板的数据拜访、异样转换、事务管理和缓存。
应用 Apache Geode 序列化形容了对 Apache Geode 的托管对象序列化和反序列化的加强。
POJO 映射形容了应用 Spring Data 存储在 Apache Geode 中的 POJO 的持久性映射。
Spring Data for Apache Geode Repositories 形容了如何通过应用根本的 CRUD 和简略的查问操作来创立和应用 Spring Data Repositories 来拜访存储在 Apache Geode 中的数据。
函数执行的正文反对形容了如何通过应用正文来执行数据所在的分布式计算来创立和应用 Apache Geode 函数。
间断查问 (CQ)形容了如何应用 Apache Geode 的间断查问 (CQ) 性能来解决基于趣味的事件流,该趣味应用 Apache Geode 的 OQL(对象查询语言)定义和注册。
在 Apache Geode 中疏导 Spring ApplicationContext 形容了如何 ApplicationContext 应用 Gfsh.
示例应用程序形容了随发行版提供的示例,以阐明 Spring Data for Apache Geode 中可用的各种性能。
- 应用 Spring 容器疏导 Apache Geode
Spring Data for Apache Geode 应用 Spring IoC 容器提供了 Apache Geode In-Memory Data Grid (IMDG) 的残缺配置和初始化。该框架包含几个类来帮忙简化 Apache Geode 组件的配置,包含:缓存、区域、索引、磁盘存储、函数、WAN 网关、持久性备份和其余几个分布式系统组件,以起码的工作反对各种应用程序用例.
本节假如您根本相熟 Apache Geode。无关更多信息,请参阅 Apache Geode 产品文档。
5.1. 应用 Spring 而不是 Apache Geode 的劣势 cache.xml
Spring Data for Apache Geode 的 XML 命名空间反对 Apache Geode In-Memory Data Grid (IMDG) 的残缺配置。XML 命名空间是在 Spring 上下文中配置 Apache Geode 以在 Spring 容器内正确治理 Apache Geode 生命周期的两种办法之一。在 Spring 上下文中配置 Apache Geode 的另一种办法是应用基于注解的配置。
尽管 cache.xml 因为遗留起因依然反对 Apache Geode 的本机,但激励应用 XML 配置的 Apache Geode 应用程序开发人员在 Spring XML 中做所有事件,以利用 Spring 提供的许多美好的货色,例如模块化 XML 配置、属性占位符和笼罩、SpEL(Spring 表达式语言)和环境配置文件。在 XML 命名空间的背地,Spring Data for Apache Geode 宽泛应用 Spring 的 FactoryBean 模式来简化 Apache Geode 组件的创立、配置和初始化。
阿帕奇的 Geode 提供了几个回调接口,如 CacheListener,CacheLoader 和 CacheWriter,这让开发人员增加自定义事件处理程序。应用 Spring 的 IoC 容器,您能够将这些回调配置为一般的 Spring bean,并将它们注入到 Apache Geode 组件中。这是对 native 的重大改良 cache.xml,它提供了绝对无限的配置选项,并且须要回调来实现 Apache Geode 的 Declarable 接口(请参阅 Wiring DeclarableComponents 以理解如何依然能够 Declarables 在 Spring 的容器中应用)。
此外,诸如 Spring Tool Suite (STS) 之类的 IDE 为 Spring XML 命名空间提供了杰出的反对,包含代码实现、弹出正文和实时验证。
5.2. 应用外围命名空间
为了简化配置,Spring Data for Apache Geode 提供了一个专用的 XML 命名空间来配置外围 Apache Geode 组件。能够应用 Spring 的规范 <bean> 定义间接配置 bean。然而,所有 bean 属性都通过 XML 名称空间公开,因而应用原始 bean 定义简直没有益处。
无关 Spring 中基于 XML Schema 的配置的更多信息,请参阅 Spring Framework 参考文档中的 附录。
Spring Data Repository 反对应用独自的 XML 命名空间。无关如何为 Apache Geode Repositories 配置 Spring Data 的更多信息,请参阅 Spring Data for Apache Geode Repositories。
要应用 Spring Data for Apache Geode XML 命名空间,请在 Spring XML 配置元数据中申明它,如以下示例所示:
<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”http://www.springframework.org/schema/beans”
xmlns:gfe="https://www.springframework.org/schema/geode"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/geode https://www.springframework.org/schema/geode/spring-geode.xsd
“>
<bean id … >
<gfe:cache …>
</beans>
pring Data for Apache Geode XML 命名空间前缀。任何名称都能够应用,但在本参考文档 gfe 中应用了所有名称。
XML 命名空间前缀映射到 URI。
XML 命名空间 URI 地位。请留神,即便该地位指向内部地址(的确存在且无效),Spring 也会在本地解析模式,因为它蕴含在 Spring Data for Apache Geode 库中。
应用带有 gfe 前缀的 XML 命名空间的示例申明。
您能够将默认命名空间从 更改 beans 为 gfe。这对于次要由 Apache Geode 组件组成的 XML 配置很有用,因为它防止了申明前缀。为此,请替换后面显示的命名空间前缀申明,如以下示例所示:
<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”https://www.springframework.org/schema/geode”
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/geode https://www.springframework.org/schema/geode/spring-geode.xsd
“>
<beans:bean id … >
<cache …>
</beans>
此 XML 文档的默认命名空间申明指向 Spring Data for Apache Geode XML 命名空间。
beansSpring 原始 bean 定义的命名空间前缀申明。
应用 beans 命名空间的 Bean 申明。留神前缀。
应用 gfe 命名空间的 Bean 申明。请留神短少前缀,因为 gfe 它是默认命名空间。
Spring 认证中国教育管理中心 -Apache Geode 的 Spring 数据教程一
5.3. 应用数据拜访命名空间
除了外围 XML 命名空间 (gfe) 之外,Spring Data for Apache Geode 还提供了数据拜访 XML 命名空间 (gfe-data),次要用于简化 Apache Geode 客户端应用程序的开发。此命名空间以后蕴含对 Apache Geode Repositories 和 Function execution 的反对,以及 <datasource> 提供连贯到 Apache Geode 集群的便捷形式的标签。
5.3.1. 连贯到 Apache Geode 的简略办法
对于许多应用程序,应用默认值与 Apache Geode 数据网格的根本连贯就足够了。Spring Data for Apache Geode 的 <datasource> 标签提供了一种拜访数据的简略办法。数据源创立一个 ClientCache 和连贯 Pool。此外,它会查问所有现有根区域的集群服务器,并为每个区域创立一个(空)客户端区域代理。
<gfe-data:datasource>
<locator host=”remotehost” port=”1234″/>
</gfe-data:datasource>
该 <datasource> 标签在语法上相似于 <gfe:pool>。它能够配置一个或多个嵌套 locator 或 server 元素以连贯到现有数据网格。此外,反对可用于配置池的所有属性。此配置为连贯到 Locator 的集群成员上定义的每个 Region 主动创立客户端 Region bean,因而它们能够被 Spring Data 映射正文 (GemfireTemplate)无缝援用并主动拆卸到应用程序类中。
当然,您能够显式配置客户端区域。例如,如果要将数据缓存在本地内存中,如下例所示:
<gfe-data:datasource>
<locator host=”remotehost” port=”1234″/>
</gfe-data:datasource>
<gfe:client-region id=”Example” shortcut=”CACHING_PROXY”/>