我一直在使用4.1.0-BUILD-SNAPSHOT中的最新代码,因为我需要4.1分支中的一些新错误修复,只是注意到" neo4jServer()"不再是Neo4jConfiguration公开的方法。初始化服务器连接和单元测试的内存中版本的新方法是什么?在我使用" RemoteServer"之前和" InProcessServer"分别。
答案 0 :(得分:5)
请注意,官方文档很快就会更新。
与此同时:
发生了什么变化
SDN 4.1使用新的Neo4j OGM 2.0库。 OGM 2.0引入了API更改,主要是因为增加了对Embedded和Remote Neo4j的支持。因此,现在使用适当的Driver
来完成与生产数据库的连接,而不是使用不推荐使用的RemoteServer
或InProcessServer
。
为了进行测试,我们建议使用EmbeddedDriver。仍然可以创建内存中的测试服务器,但这个答案中没有涉及。
可用的驱动程序
目前提供了以下Driver
实施
Bolt协议(Neo4j 3.0)的驱动程序实现即将推出。
配置驱动程序
有两种方法可以配置驱动程序 - 使用属性文件或通过Java配置。存在这些主题的变化(特别是对于传递凭证),但是现在以下内容应该让您前进:
<小时/> 配置Http驱动程序
Http Driver通过Http连接到Neo4j服务器并与之通信。如果您的应用程序在客户端 - 服务器模式下运行,则必须使用Http驱动程序。请注意,Http驱动程序将尝试连接到在单独进程中运行的服务器。 不能用于启动进程内服务器。
属性文件配置:
使用属性文件的优点是它不需要更改Spring配置。
在类路径的某处创建一个名为ogm.properties
的文件。它应包含以下条目:
driver=org.neo4j.ogm.drivers.http.driver.HttpDriver
URI=http://user:password@localhost:7474
Java配置:
配置驱动程序的最简单方法是创建一个Configuration
bean并将其作为Spring配置中SessionFactory
构造函数的第一个参数传递:
import org.neo4j.ogm.config.Configuration;
...
@Bean
public Configuration getConfiguration() {
Configuration config = new Configuration();
config
.driverConfiguration()
.setDriverClassName
("org.neo4j.ogm.drivers.http.driver.HttpDriver")
.setURI("http://user:password@localhost:7474");
return config;
}
@Bean
public SessionFactory getSessionFactory() {
return new SessionFactory(getConfiguration(), <packages> );
}
<小时/> 配置嵌入式驱动程序
嵌入式驱动程序直接连接到Neo4j数据库引擎。没有涉及服务器,因此应用程序代码和数据库之间没有网络开销。如果您不想使用客户端 - 服务器模型,或者您的应用程序作为Neo4j非托管扩展运行,则应使用嵌入式驱动程序。
您可以指定永久数据存储位置,以便在应用程序关闭后提供数据的持久性,或者您可以使用非永久性数据存储,该存储仅在您的应用程序运行时存在(非常适合测试)。
在类路径的某处创建一个名为ogm.properties
的文件。它应包含以下条目:
属性文件配置(永久数据存储)
driver=org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver
URI=file:///var/tmp/graph.db
属性文件配置(非永久数据存储)
driver=org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver
要使用非永久数据存储,只需省略URI属性。
Java配置
与Http驱动程序一样,使用相同的技术配置嵌入式驱动程序。设置一个Configuration bean并将其作为SessionFactory构造函数的第一个参数传递:
import org.neo4j.ogm.config.Configuration;
...
@Bean
public Configuration getConfiguration() {
Configuration config = new Configuration();
config
.driverConfiguration()
.setDriverClassName
("org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver")
.setURI("file:///var/tmp/graph.db");
return config;
}
@Bean
public SessionFactory getSessionFactory() {
return new SessionFactory(getConfiguration(), <packages> );
}
如果要使用非永久性数据存储(例如,用于测试),请不要在配置上设置URI属性:
@Bean
public Configuration getConfiguration() {
Configuration config = new Configuration();
config
.driverConfiguration()
.setDriverClassName
("org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver")
return config;
}