【问题标题】:Reconnect to Neo4j REST Service重新连接到 Neo4j REST 服务
【发布时间】:2015-10-09 08:01:49
【问题描述】:

我有一个用例,用户可以连接到不同的 neo4j 数据库。我正在使用弹簧数据。我的配置如下:

@Configuration
@ComponentScan("org.inno")
@EnableTransactionManagement
@EnableNeo4jRepositories("org.inno.dao")
public class AppConfig extends Neo4jConfiguration {
    public AppConfig() {
       setBasePackage("org.inno.model");
    }

    @Bean
    @Lazy
    public GraphDatabaseService graphDatabaseService() {
       //url may change based on the user preferences
       String url = "http://localhost:7474/db/data/"; 
       return new SpringRestGraphDatabase(url);
    }
}

我使用 GraphDatabaseService 作为存储库。

我的问题:如何在运行时连接到不同的数据库?我不是在谈论应用程序的启动。在那里我可以使用 Preferences API。我说的是一个我已经连接到服务器但想切换到另一个服务器的用例。不幸的是,该服务仅提供关闭方法,但没有重新连接到另一个 URL。我是否必须通过访问 ApplicationContext 来销毁 GraphDatabaseService 的 bean?还是有其他方法?

【问题讨论】:

  • 您可以使用第二个 URL 定义为第二个 bean。您可能还应该使用 SpringCypherRestGraphDatabase
  • 是的,我知道 SpringRestGraphDatabase 已被弃用,它只是一个示例。但是你的提议意味着我只能切换一次不同的 URL。

标签: spring neo4j spring-data-neo4j


【解决方案1】:

您的实际用例是什么?

您也可以实例化一个Neo4jTemplate,直接在构造函数中传递一个SpringRestGraphDatabase 的实例。

【讨论】:

  • 我有一个客户端,用户可以在其中在对话框中输入任何 url,并且可以在不重新启动客户端的情况下保存图形。我只遵循了@ spring-data-neo4j 的教程,其中存储库是使用代理创建的。我对模板一无所知。也许这是一个解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 2016-03-26
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多