簡體   English   中英

使用 Spring Boot 的多個 R2DBC 數據源

[英]Multiple R2DBC datasource with Spring boot

我想將我的應用程序遷移到 WebFlux,但棘手的部分是我的 bean 通過這種機制連接到 6 個數據源

public class MultiRoutingDataSource extends AbstractRoutingDataSource {

    @Override
    protected Object determineCurrentLookupKey() {
        return //code which sets context for chosen db;
    }
}

然后我創建 6 個數據源,然后由 multiRoutingDataSource 管理

@Bean(name = "multiRoutingDataSource")
    public DataSource multiRoutingDataSource() {
        Map<Object, Object> targetDataSources = new HashMap<>();
        targetDataSources.put(ident, MyDataSourceBean());
        MultiRoutingDataSource multiRoutingDataSource = new MultiRoutingDataSource();
        multiRoutingDataSource.setTargetDataSources(targetDataSources);
        return multiRoutingDataSource;
    }

並且可以在運行時更改此數據源。 然后將此 multiRouting 設置為實體管理器。

WebFlux 有類似的東西嗎?

我發現

public class MultiRoutingDataSource extends AbstractRoutingConnectionFactory {

    @Override
    protected Mono<Object> determineCurrentLookupKey() {
        return null;
    }

但是如何像我在 Spring MVC 中所做的那樣創建帶有連接的 bean 並在運行時切換它們?

如果您想在同一個應用程序中使用多個 R2dbc connectionfactories,請查看我的示例multi-r2dbc-connectionfactories

對於多租戶支持,請檢查multi-tenancy-r2dbc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM