0

1) 我正在使用Resteasy提供一个 RESTful Web 服务,它可以访问特定的Neo4j图形数据库。

使用 Resteasy,这个 Web 资源 (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 对象是否必须静态定义?它应该在所有请求之间共享吗?如何让两个请求不纠缠?

4

1 回答 1

0

我正在使用 Jersey,但我们正在做同样的事情——暴露一个在幕后使用 neo4j 的 REST 服务。我所做的是使用 getDb() 方法创建一个单例,该方法基本上可以获得 neo4j 数据库的句柄。数据库可以由多个线程共享-您只需要确保多次实例化同一个数据库即可。

于 2012-02-25T12:57:08.803 回答