Java Neo4j驱动器正在运行
我在我的play应用程序中使用了Neo4j java 目前,我为每个控制器初始化一个新的驱动程序,即为每个http调用初始化一个新的驱动程序。当autoclosable close方法运行时,它似乎会将整个调用阻塞大约两秒钟。在没有关闭驱动程序的情况下运行显然是一个坏主意,它将我的测试时间从25秒减少到了5秒 我确实怀疑我用错了驱动程序,我想我应该在整个应用程序中使用一个驱动程序,但我不知道如何使用。在play框架中使用java Neo4j驱动程序的正确方法是什么?接口的Javadoc状态: 驱动程序实现通常是线程安全的,充当模板 用于会话创建和承载连接池。所有配置和 身份验证设置由驱动程序保持不变。应该 如果需要不同的设置,则应创建新的驱动程序实例 创造 驱动程序为每个远程Neo4j服务器维护一个连接池。 因此,使用驱动程序的最有效方法是使用 应用程序中的同一实例 因此,一般来说,您应该使用单个驱动程序实例 共享同一实例的一种方法是实现一个提供驱动程序实例的工厂类。下面是一个非常基本的线程安全示例:Java Neo4j驱动器正在运行,java,neo4j,playframework,connection-pooling,autocloseable,Java,Neo4j,Playframework,Connection Pooling,Autocloseable,我在我的play应用程序中使用了Neo4j java 目前,我为每个控制器初始化一个新的驱动程序,即为每个http调用初始化一个新的驱动程序。当autoclosable close方法运行时,它似乎会将整个调用阻塞大约两秒钟。在没有关闭驱动程序的情况下运行显然是一个坏主意,它将我的测试时间从25秒减少到了5秒 我确实怀疑我用错了驱动程序,我想我应该在整个应用程序中使用一个驱动程序,但我不知道如何使用。在play框架中使用java Neo4j驱动程序的正确方法是什么?接口的Javadoc状态: 驱
class DriverFactory {
private static Driver instance;
public static synchronized Driver getDriver() {
if (instance == null) {
instance = GraphDatabase.driver(...);
}
return instance;
}
}
正是我想要的。