如何在Spring Boot / Data Neo4j中使用Bolt驱动程序

时间:2016-08-19 02:49:53

标签: java spring-boot neo4j spring-data spring-data-neo4j-4

我从Spring Boot中收到此错误。

Could not deduce driver to use based on URI 'bolt://localhost:7687
尝试使用属性或env变量

进行配置时

spring.data.neo4j.uri=bolt://localhost:7687

我确实添加了驱动程序

   <dependency>
        <scope>runtime</scope>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-ogm-bolt-driver</artifactId>
        <version>${neo4j-ogm.version}</version>
    </dependency>

imagine spring boot doesn't support autoconfiguration for this yet

如何手动设置此驱动程序以使用Spring Boot / Data?请举例。

2 个答案:

答案 0 :(得分:5)

当前用于Neo4j的Spring Boot启动程序未检测到bolt协议,因此无法自动配置Bolt驱动程序。但是,如果在应用程序上下文中提供配置Bean,Spring Boot将使用它,而不是尝试自动配置驱动程序本身。

这应该足以让你前进:

@Bean
public Configuration getConfiguration() {
   Configuration config = new Configuration();
   config
       .driverConfiguration()
       .setURI("bolt://localhost");
   return config;
}

请注意,您不需要在配置中声明驱动程序名称,它将从URI中自动检测。

另请注意,Configuration类实际上是org.neo4j.ogm.config.Configuration,您可能需要明确使用它。

答案 1 :(得分:-1)

请注意,您不需要在配置中声明驱动程序名称,它将从URI中自动检测。

我得到了&#39; 未知协议:bolt &#39;在这种情况下。

问题是DriverConfiguration.setURI()会尝试实例化java.net.URL以检索userNamepassword并设置驱动程序。我认为最好使用java.net.URI,因为我们不需要打开连接,只是为了获取信息。

查看此帖子: why does java's URL class not recognize certain protocols?