Как подключиться к Neo4j перед каждым запросом на Resteasy? - PullRequest
0 голосов
/ 24 февраля 2012

1) Я использую Resteasy для предоставления веб-службы RESTful, которая предоставляет доступ к определенной Neo4j графовой базе данных.

С Resteasy этот веб-ресурс (GraphResource.java) выглядит следующим образом:

@Path("graph")
public class GraphResource {

    @GET
    @Path("users/{id}")
    @Produces(MediaType.APPLICATION_JSON)
    public String getUserInfos(@PathParam("id") String id) {
        // Search the database, get a string representation and return it
    }
}

Я хотел бы получить доступ к БД в методе getUserInfos. Я знаю, что мне нужно создать экземпляр объекта Graph (с Gremlin ):

Graph graph = new Neo4jGraph("/tmp/neo4j");

... но я не знаю, где лучшее место.

Как вы думаете, PreProcessInterceptor может быть полезным? Я никогда не видел ни одного примера с подключением к БД.

2) Нужно ли статически определять объект Graph? Должно ли оно быть общим для всех запросов? Как сделать, чтобы два запроса не запутались?

1 Ответ

0 голосов
/ 25 февраля 2012

Я использую Джерси, но мы делаем то же самое - выставляем REST-сервис, который использует neo4j под прикрытием. Что я делаю, так это создаю синглтон с методом getDb (), который в основном получает дескриптор базы данных neo4j БД может совместно использоваться несколькими потоками - вам просто нужно убедиться, что вы создаете один и тот же БД несколько раз.

...