返回介绍

12.2.1 配置Spring Data Neo4j

发布于 2024-08-17 00:45:49 字数 2520 浏览 0 评论 0 收藏 0

配置Spring Data Neo4j的关键在于声明GraphDatabaseService bean和启用Neo4j Repository自动生成功能。如下的程序清单展现了Spring Data Neo4j所需的基本配置。

程序清单12.8 使用@EnableNeo4jRepositories来配置Spring Data Neo4j

@EnableNeo4jRepositories注解能够让Spring Data Neo4j自动生成Neo4j Repository实现。它的basePackages属性设置为orders.db包,这样它就会扫描这个包来查找(直接或间接)扩展Repository标记接口的其他接口。

Neo4jConfig扩展自Neo4jConfiguration,后者提供了多个便利的方法来配置Spring Data Neo4j。在这些方法中,就包括setBasePackage(),它会在Neo4jConfig的构造器中调用,用来告诉Spring Data Neo4j要在orders包中查找模型类。

这个拼图的最后一部分是定义GraphDatabaseServicebean。在本例中,graphDatabaseService()方法使用GraphDatabaseFactory来创建嵌入式的Neo4j数据库。在Neo4j中,嵌入式数据库不要与内存数据库相混淆。在这里,“嵌入式”指的是数据库引擎与应用运行在同一个JVM中,作为应用的一部分,而不是独立的服务器。数据依然会持久化到文件系统中(在本例中,也就是“/tmp/graphdb”中)。

作为另外的一种方式,你可能会希望配置GraphDatabaseService连接远程的Neo4j服务器。如果spring-data-neo4j-rest库在应用的类路径下,那么我们就可以配置SpringRestGraphDatabase,它会通过RESTful API来访问远程的Neo4j数据库:

如上所示,SpringRestGraphDatabase在配置时,假设远程的数据库并不需要认证。但是,在生产环境的配置中,当创建SpringRestGraphDatabase的时候,我们可能希望提供应用的凭证:

在这里,凭证是通过注入的Environment获取到的,避免了在配置类中的硬编码。

Spring Data Neo4j同时还提供了XML命名空间。如果你更愿意在XML中配置Spring Data Neo4j的话,那可以使用该命名空间中的<neo4j:config>和<neo4j:repositories>元素。在功能上,程序清单12.9所展示的配置与程序清单12.8中的Java配置是相同的。

程序清单12.9 Spring Data Neo4j也可以通过XML来配置

<neo4j:config>元素配置了如何访问数据库的细节。在本例中,它配置Spring Data Neo4j使用嵌入式的数据库。具体来讲,storeDirectory属性指定了数据要持久化到哪个文件系统路径中。base-package属性设置了模型类定义在哪个包中。

至于<neo4j:repositories>元素,它启用Spring Data Neo4j自动生成Repository实现的功能,它会扫描orders.db包,查找所有扩展Repository的接口。

如果要配置Spring Data Neo4j访问远程的Neo4j服务器,我们所需要做的就是声明SpringRestGraphDatabasebean,并设置<neo4j:config>的graphDatabaseService属性:

不管是通过Java还是通过XML来配置Spring Data Neo4j,我们都需要确保模型类位于基础包所指定的包中(通过@EnableNeo4jRepositories的basePackages属性或<neo4j:config>的base-package属性来进行设置)。它们都需要使用注解将其标注为节点实体或关联关系实体。这就是我们接下来的任务。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文