Neo4jConfiguration 中的 Neo4jServer - 4.1.0?

Neo4jServer in Neo4jConfiguration - 4.1.0?

我一直在使用 4.1.0-BUILD-SNAPSHOT 中的最新代码,因为我需要 4.1 分支中的一些新错误修复,只是注意到 "neo4jServer()" 不再是公开的方法Neo4j 配置。初始化服务器连接和单元测试的内存版本的新方法是什么?在我分别使用 "RemoteServer" 和 "InProcessServer" 之前。

请注意,官方文档将很快更新。

同时:

有什么变化

SDN 4.1 使用新的 Neo4j OGM 2.0 库。 OGM 2.0 引入了 API 变化,主要是由于增加了对嵌入式和 Remote Neo4j 的支持。因此,现在可以使用适当的 Driver 连接到生产数据库,而不是使用已弃用的 RemoteServerInProcessServer

对于测试,我们建议使用 EmbeddedDriver。仍然可以创建一个 in-memory 测试服务器,但这没有包含在这个答案中。

可用的驱动程序

目前提供了以下 Driver 实现

  • http : org.neo4j.drivers.http.driver.HttpDriver
  • 嵌入:org.neo4j.drivers.embedded.driver.EmbeddedDriver

Bolt 协议 (Neo4j 3.0) 的驱动程序实现即将推出。

配置驱动程序

有两种配置驱动程序的方法 - 使用属性文件或通过 Java 配置。存在这些主题的变体(特别是对于传递凭据),但现在以下内容应该可以帮助您:


配置 Http 驱动程序

Http 驱动程序通过 Http 连接到 Neo4j 服务器并与之通信。如果您的应用程序是 运行 in client-server 模式,则必须使用 Http 驱动程序。请注意,Http 驱动程序将尝试在单独的进程中连接到服务器 运行。它 不能 用于启动 in-process 服务器。

属性文件配置:

使用属性文件的优点是它不需要更改您的 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 数据库引擎。不涉及服务器,因此您的应用程序代码和数据库之间没有网络开销。如果您不想使用 client-server 模型,或者如果您的应用程序 运行 作为 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 驱动程序的技术相同。设置配置 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;
}