Как я могу использовать драйвер Bolt с Spring Boot/Data Neo4j

Я получаю эту ошибку от 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>

Я полагаю, весенняя загрузка пока не поддерживает автоконфигурацию

Как вручную настроить этот драйвер для работы с Spring Boot / Data? пожалуйста, приведите пример.

2 ответа

Решение

Текущий стартер Spring Boot для Neo4j не обнаруживает bolt протокол и так не может автоматически настроить драйвер болта. Однако, если вы предоставляете компонент конфигурации в контексте приложения, Spring Boot будет использовать его, а не пытаться автоматически сконфигурировать сам драйвер.

Этого должно быть достаточно, чтобы вы начали:

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

Обратите внимание, что вам не нужно объявлять имя драйвера в конфигурации, оно будет автоматически определено из URI.

Также обратите внимание на Configuration класс на самом деле org.neo4j.ogm.config.Configuration, который вы, вероятно, должны будете использовать явно.

Обратите внимание, что вам не нужно объявлять имя драйвера в конфигурации, оно будет автоматически определено из URI.

Я получаю "неизвестный протокол: болт" в этом случае.

Проблема в том, что DriverConfiguration.setURI() постараюсь создать экземпляр java.net.URL извлечь userName, password и установить драйвер. Я думаю, что лучше использовать java.net.URI потому что нам не нужно открывать соединение, а только чтобы получить информацию.

Посмотрите этот пост: почему класс URL в Java не распознает определенные протоколы?

Другие вопросы по тегам