| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring认证指南:了解如何使用 Gemfire 的数据结构构建应用程序 -> 正文阅读 |
|
[Java知识库]Spring认证指南:了解如何使用 Gemfire 的数据结构构建应用程序 |
在 Pivotal GemFire 中访问数据本指南将引导您完成构建Apache Geode数据管理系统应用程序的过程。 你将建造什么您将使用Spring Data for Apache Geode来存储和检索 POJO。 你需要什么
如何完成本指南像大多数 Spring入门指南一样,您可以从头开始并完成每个步骤,也可以绕过您已经熟悉的基本设置步骤。无论哪种方式,您最终都会得到工作代码。 要从头开始,请继续从 Spring Initializr 开始。 要跳过基础知识,请执行以下操作:
完成后,您可以对照中的代码检查结果 从 Spring Initializr 开始对于所有 Spring 应用程序,您应该从Spring Initializr开始。Spring Initializr 提供了一种快速的方法来获取应用程序所需的所有依赖项,并为您完成大量设置。此示例需要 Spring for Apache Geode 依赖项。 您可以使用这个预先初始化的项目并单击 Generate 下载 ZIP 文件。此项目配置为适合本教程中的示例。 手动初始化项目:
如果您的 IDE 具有 Spring Initializr 集成,您可以从您的 IDE 完成此过程。 你也可以从 Github 上 fork 项目并在你的 IDE 或其他编辑器中打开它。 定义一个简单的实体Apache Geode 是一种将数据映射到区域的内存中数据网格 (IMDG)。您可以配置在集群中的多个节点之间分区和复制数据的分布式区域。但是,在本指南中,我们使用了一个LOCAL区域,因此您无需设置任何额外内容,例如整个服务器集群。 Apache Geode 是一个键/值存储,一个区域实现 在此示例中,您Person仅使用几个注释将对象存储在 Apache Geode(一个区域)中。 src/main/java/hello/Person.java
在这里,您有一个Person包含两个字段的类:name和age. 在创建新实例时,您还有一个持久构造函数来填充实体。该类使用Project Lombok来简化实现。 请注意,这个类是用 注释的@Region("People")。当 Apache Geode 存储此类的实例时,会在该区People域内创建一个新条目。此类还name用 标记该字段@Id。这表示用于识别和跟踪PersonApache Geode 内部数据的标识符。本质上,带@Id注释的字段(例如name)是键,而Person实例是键/值条目中的值。Apache Geode 中没有自动生成密钥,因此您必须在name将实体持久化到 Apache Geode 之前设置 ID (the )。 下一个重要的部分是这个人的年龄。在本指南的后面部分,我们使用它来设计一些查询。 被覆盖的toString()方法打印出人的姓名和年龄。 创建简单查询Spring Data for Apache Geode 专注于使用 Spring 在 Apache Geode 中存储和访问数据。它还继承了 Spring Data Commons 项目的强大功能,例如派生查询的能力。本质上,您不需要学习 Apache Geode (OQL) 的查询语言。您可以编写一些方法,框架会为您编写查询。 要查看其工作原理,请创建一个查询Person存储在 Apache Geode 中的对象的接口: src/main/java/hello/PersonRepository.java
PersonRepository从 Spring Data Commons扩展接口,并为RepositoryCrudRepository使用的值和 ID(键)指定泛型类型参数的类型(分别为和)。该接口带有许多操作,包括基本的 CRUD(创建、读取、更新、删除)和简单的查询数据访问操作(例如)。PersonStringfindById(..) 您可以根据需要通过声明其方法签名来定义其他查询。在这种情况下,我们添加findByName,它实质上搜索类型的对象Person并找到与 匹配的对象name。 你还有:
让我们把它连接起来,看看它是什么样子的! 创建应用程序类以下示例创建一个包含所有组件的应用程序类: src/main/java/hello/Application.java
在配置中,需要添加@EnableGemfireRepositories注解。
需要包含一个或多个区域的 Apache Geode 缓存来存储所有数据。为此,您可以使用 Spring Data for Apache Geode 方便的基于配置的注释之一:@ClientCacheApplication、@PeerCacheApplication或@CacheServerApplication. Apache Geode 支持不同的缓存拓扑,例如客户端/服务器、点对点 (p2p),甚至是 WAN 安排。在 p2p 中,对等缓存实例嵌入在应用程序中,您的应用程序将能够作为对等缓存成员参与集群。但是,您的应用程序受到作为集群中对等成员的所有约束,因此这不像客户端/服务器拓扑那样常用。 在我们的例子中,我们使用@ClientCacheApplication创建一个“客户端”缓存实例,它能够连接到服务器集群并与之通信。但是,为了简单起见,客户端通过使用LOCAL客户端区域在本地存储数据,而无需设置或运行任何服务器。 现在,还记得您是如何标记Person为存储在People使用 SDG 映射注释调用的区域中的@Region("People")吗?您可以使用ClientRegionFactoryBean<String, Person>bean 定义在此处定义该区域。您需要注入一个刚刚定义的缓存实例,同时命名它People。 Apache Geode 缓存实例(无论是对等方还是客户端)只是存储数据的区域容器。您可以将缓存视为 RDBMS 中的模式,将区域视为表。但是,缓存还执行其他管理功能来控制和管理您的所有区域。 类型是,将键类型 ( ) 与值类型 ( )<String, Person>匹配。StringPerson 该public static void main方法使用 Spring BootSpringApplication.run()启动应用程序并调用ApplicationRunner(另一个 bean 定义),它使用应用程序的 Spring Data 存储库在 Apache Geode 上执行数据访问操作。 PersonRepository应用程序自动装配您刚刚定义的实例。Spring Data for Apache Geode 动态创建一个具体的类来实现这个接口并插入所需的查询代码来满足接口的义务。该run()方法使用此存储库实例来演示功能。 存储和获取数据在本指南中,您将创建三个本地Person对象:Alice、Baby Bob和Teen Carol。最初,它们只存在于内存中。创建它们后,您必须将它们保存到 Apache Geode。 现在您可以运行多个查询。第一个按名字查找每个人。然后,您可以使用 age 属性运行一些查询来查找成人、婴儿和青少年。打开日志记录后,您可以看到 Spring Data for Apache Geode 代表您编写的查询。 要查看 SDG 生成的 Apache Geode OQL 查询,请将@ClientCacheApplication注释logLevel属性更改为config。因为查询方法(例如findByName)使用 SDG 的@Trace注解进行了注解,所以这会打开 Apache Geode 的 OQL 查询跟踪(查询级日志记录),它会显示生成的 OQL、执行时间、查询是否使用了任何 Apache Geode 索引来收集结果以及查询返回的行数。 构建一个可执行的 JAR您可以使用 Gradle 或 Maven 从命令行运行应用程序。您还可以构建一个包含所有必要依赖项、类和资源的单个可执行 JAR 文件并运行它。构建可执行 jar 可以在整个开发生命周期、跨不同环境等中轻松地作为应用程序交付、版本化和部署服务。 如果您使用 Gradle,则可以使用./gradlew bootRun. 或者,您可以使用构建 JAR 文件./gradlew build,然后运行 ?JAR 文件,如下所示:
如果您使用 Maven,则可以使用./mvnw spring-boot:run. 或者,您可以使用构建 JAR 文件,./mvnw clean package然后运行该 JAR 文件,如下所示:
此处描述的步骤创建了一个可运行的 JAR。您还可以构建经典的 WAR 文件。 您应该会看到类似这样的内容(带有其他内容,例如查询):
概括恭喜!您设置了一个 Apache Geode 缓存客户端,存储了简单的实体,并开发了快速查询。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:35:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |