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

Spring boot 使用spring jpa在springboot应用程序中路由到不同的mysql数据源主/从,并从application.properties读取属性,spring-boot,spring-data-jpa,master-slave,application.properties,Spring Boot,Spring Data Jpa,Master Slave,Application.properties,使用spring jpa在springboot应用程序中路由到不同的mysql数据源主/从,并从application.properties读取属性 如何在spring应用程序中路由到不同的数据库 我使用的是AbstractRoutingDatasource spring库AbstractRoutingDatasource需要知道路由到哪个实际数据源的信息。此信息是通过实现determineCurrentLookupKey()抽象函数提供的。您可以将此方法配置为从属性文件提供密钥 @Overri

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

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


我使用的是AbstractRoutingDatasource spring库

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

@Override
protected Object determineCurrentLookupKey() {
    return "property from file";
}
您还需要一个数据源对象映射来配置AbstractRoutingDataSource,如果没有上下文设置,则需要一个默认数据源来使用。然后您可以像这样配置数据源:

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;
Map targetDataSources=new HashMap();
DataSource slaveDatasource=slaveDatasource();
DataSource masterDatasource=masterDatasource();
targetDataSources.put(“从”,slaveDatasource);
targetDataSources.put(“主”,MasterDataSources);
DataSourceRoutingDataSource=新DataSourceRouter();
routingDatasource.setTargetDataSources(targetDataSources);
setDefaultTargetDataSource(someDefaultDataSource);
返回路由数据源;

参考链接:

请检查我的答案,如果有帮助,请告诉我。此外,请务必阅读: