Neo4j
Neo4j是一个开源的NoSQL图数据库,它使用图(graph)相关的概念来描述数据模型,把数据保存为图中的节点以及节点之间的关系。相比传统rdbms(关系管理系统)的方式,Neo4j更适合大数据关系分析。Spring Boot为使用Neo4j提供很多便利,包括spring-boot-starter-data-neo4j‘Starter’。
连接Neo4j数据库
你可以注入一个自动配置的Neo4jSession,Session,或Neo4jOperations实例,就像使用其他Spring Bean那样。该实例默认使用localhost:7474连接Neo4j服务器:
添加自己的org.neo4j.ogm.config.Configuration @Bean,你就能完全控制该配置了。同时,添加一个Neo4jOperations类型的@Bean可以禁用自动配置。
通过spring.data.neo4j.*属性可以配置使用的用户和凭证:
使用内嵌模式
注意
Neo4j的内嵌模式从属于不同的许可,在将它集成到应用之前确保复查下。
如果将org.neo4j:neo4j-ogm-embedded-driver依赖添加到应用中,Spring Boot会自动配置一个进程内(in-process)的内嵌Neo4j实例,当应用关闭时,该实例不会持久化任何数据。设置spring.data.neo4j.embedded.enabled=false可显式关闭该模式,你也可以启用内嵌模式的持久化特性:
Neo4jSession
Neo4jSession默认的生命周期是应用程序范围,如果运行的是web应用,你可以很轻松的改变它的scope:
Spring Data Neo4j仓库
Spring Data包含的仓库也支持Neo4j,实际上,Spring Data JPA和Spring Data Neo4j使用相同的常用设施,所以你可以采用先前JPA的示例,假设City现在是一个Neo4j OGM @NodeEntity而不是JPA @Entity,它将以同样的方式工作。
注意
你可以使用@EntityScan注解定义实体扫描路径。
将以下两个注解添加到你的Spring configuration,可以启用repository支持(还有可选的对@Transactional的支持):
仓库示例
Gemfire
Spring Data Gemfire为使用Pivotal Gemfire数据管理平台提供了方便的,Spring友好的工具。Spring Boot提供了一个用于聚集依赖的spring-boot-starter-data-gemfire‘Starter’,目前不支持Gemfire的自动配置,但你只需使用一个注解就能使Spring Data仓库支持它。
注意
想详细了解Spring Data Neo4j,包括它丰富的对象映射技术,可查看它的参考文档。