2

使用spring jpa并从application.properties读取属性在springboot应用程序中路由到不同的mysql数据源主/从

我应该如何在 Spring 应用程序中路由到不同的数据库

我正在使用 AbstractRoutingDatasource 弹簧库

4

1 回答 1

0

AbstractRoutingDatasource 需要知道要路由到哪个实际 DataSource 的信息。该信息是通过实现 determineCurrentLookupKey() 抽象函数来提供的。您可以配置此方法以提供属性文件中的密钥。

@Override
protected Object determineCurrentLookupKey() {
    return "property from file";
}

如果没有设置上下文,您还需要一个 DataSource 对象映射来配置 AbstractRoutingDataSource 和一个要使用的默认 DataSource。然后你可以像这样配置你的数据源:

Map<Object, Object> targetDataSources = new HashMap<>();
DataSource slaveDatasource = slaveDatasource();
DataSource masterDatasource = masterDatasource();
targetDataSources.put("slave", slaveDatasource);
targetDataSources.put("master", masterDatasource);
DataSourceRouter routingDatasource = new DataSourceRouter();
routingDatasource.setTargetDataSources(targetDataSources);
routingDatasource.setDefaultTargetDataSource(someDefaultDataSource);
return routingDatasource;

参考链接:http ://www.baeldung.com/spring-abstract-routing-data-source

于 2018-02-14T09:04:30.170 回答