Я использовал последний код в 4.1.0-BUILD-SNAPSHOT, так как мне нужны некоторые новые исправления ошибок в ветке 4.1, и я только что заметил, что «neo4jServer()» больше не является методом, предоставляемым Neo4jConfiguration. Каков новый способ инициализации подключения к серверу и версии в памяти для модульных тестов? Раньше я использовал «RemoteServer» и «InProcessServer» соответственно.
Neo4jServer в Neo4jConfiguration - 4.1.0?
Ответы (1)
Обратите внимание, официальная документация будет обновлена в ближайшее время.
В это время:
Что изменилось
SDN 4.1 использует новые библиотеки Neo4j OGM 2.0. OGM 2.0 представляет изменения API, в основном из-за добавления поддержки Embedded, а также Remote Neo4j. Следовательно, подключение к производственной базе данных теперь выполняется с использованием соответствующего Driver
, а не с использованием RemoteServer
или InProcessServer
, которые устарели.
Для тестирования мы рекомендуем использовать EmbeddedDriver. По-прежнему можно создать тестовый сервер в памяти, но это не рассматривается в этом ответе.
Доступные драйверы
В настоящее время предоставляются следующие реализации Driver
- http: org.neo4j.drivers.http.driver.HttpDriver
- встроенный: org.neo4j.drivers.embedded.driver.EmbeddedDriver
Реализация драйвера для протокола Bolt (Neo4j 3.0) будет доступна в ближайшее время.
Настройка драйвера
Существует два способа настройки драйвера — с помощью файла свойств или с помощью конфигурации Java. Существуют вариации на эти темы (в частности, для передачи учетных данных), но на данный момент вам должно помочь следующее:
Настройка HTTP-драйвера
Драйвер Http подключается к серверу Neo4j и взаимодействует с ним через Http. Драйвер Http необходимо использовать, если ваше приложение работает в режиме клиент-сервер. Обратите внимание, что драйвер HTTP попытается подключиться к серверу, работающему в отдельном процессе. Его нельзя использовать для запуска внутрипроцессного сервера.
Конфигурация файла свойств:
Преимущество использования файла свойств заключается в том, что он не требует внесения изменений в конфигурацию Spring.
Создайте файл с именем ogm.properties
где-нибудь в пути к классам. Он должен содержать следующие записи:
driver=org.neo4j.ogm.drivers.http.driver.HttpDriver
URI=http://user:password@localhost:7474
Конфигурация Java:
Самый простой способ настроить драйвер — создать bean-компонент Configuration
и передать его в качестве первого аргумента конструктору SessionFactory
в конфигурации Spring:
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. Настройте bean-компонент Configuration и передайте его в качестве первого аргумента конструктору 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;
}