- 作者简介
- 内容提要
- 关于本书
- 路线图
- 代码规范与下载
- 作者在线
- 封面插图简介
- 前言
- 译者序
- 致谢
- 第1部分 Spring 的核心
- 第1章 Spring 之旅
- 第2章 装配 Bean
- 第3章 高级装配
- 第4章 面向切面的 Spring
- 第2部分 Web 中的 Spring
- 第5章 构建 Spring Web 应用程序
- 第6章 渲染 Web 视图
- 第7章 Spring MVC 的高级技术
- 第8章 使用 Spring Web Flow
- 第9章 保护 Web 应用
- 第3部分 后端中的 Spring
- 第10章 通过 Spring 和 JDBC 征服数据库
- 第11章 使用对象-关系映射持久化数据
- 第12章 使用 NoSQL 数据库
- 第13章 缓存数据
- 第14章 保护方法应用
- 第4部分 Spring 集成
- 第15章 使用远程服务
- 第16章 使用 Spring MVC 创建 REST API
- 第17章 Spring消息
- 第18章 使用 WebSocket 和 STOMP 实现消息功能
- 第19章 使用 Spring 发送 Email
- 第20章 使用 JMX 管理 Spring Bean
- 第21章 借助 Spring Boot 简化 Spring 开发
12.2.1 配置Spring Data Neo4j
配置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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论