【发布时间】:2021-03-07 01:43:46
【问题描述】:
我想将我的应用程序迁移到 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;
}
但是如何创建带有连接的 bean 并在运行时切换它们,就像我在 Spring MVC 中所做的那样?
【问题讨论】:
标签: spring-boot spring-mvc spring-webflux spring-data-r2dbc