2015-07-20 65 views
0

我有一個用戶可以連接到不同的neo4j數據庫的用例。我正在使用彈簧數據。我的配置如下所示:重新連接到Neo4j REST服務

@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?還是有另一種方式?

+0

您可以將第二個URL定義爲第二個bean。您應該也許也使用SpringCypherRestGraphDatabase –

+0

是的,我知道SpringRestGraphDatabase已被棄用,它只是一個示例。但是你的建議意味着我只能切換一次不同的URL。 – Spindizzy

回答

0

你的實際使用情況是?

你也可以實例化一個Neo4jTemplate直接在構造函數中傳遞一個SpringRestGraphDatabase的實例。

+0

我有一個客戶端,用戶可以在對話框中輸入任何網址,並且可以保存圖形而無需重新啓動客戶端。我只跟隨了教程@ spring-data-neo4j,其中存儲庫是使用代理創建的。我還沒有關於模板的線索。也許這是一個解決方案。 – Spindizzy