繁体   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