数据源注入 Crud Repository spring boot
Data source inject to Crud Repository spring boot
有什么方法可以向 Crud Repository 注入或设置数据源吗?
我需要一个存储库和多个具有相同模式的数据库。
我试图用数据库名称和数据源制作哈希映射并使用类似的东西 https://spring.io/blog/2007/01/23/dynamic-datasource-routing/ 但它不起作用
这解决了我的问题
@Component
public class RoutingDataSource extends AbstractRoutingDataSource {
@Autowired
private DatabaseMap databaseMap;
@Override
public void afterPropertiesSet() {
setTargetDataSources(databaseMap.getSourcesMap());
setDefaultTargetDataSource(databaseMap.getSourcesMap().get("DEFAULT"));
super.afterPropertiesSet();
}
@Override
protected Object determineCurrentLookupKey() {
return DatabaseContextHolder.getDatabaseType();
}
}
@Configuration
public class DatabaseLoader {
@Bean
public DatabaseMap databaseMap() {
//init databases using DataSourceBuilder
return databaseMap;
}
}
我更改上下文的方式与此处相同https://spring.io/blog/2007/01/23/dynamic-datasource-routing/
有什么方法可以向 Crud Repository 注入或设置数据源吗? 我需要一个存储库和多个具有相同模式的数据库。 我试图用数据库名称和数据源制作哈希映射并使用类似的东西 https://spring.io/blog/2007/01/23/dynamic-datasource-routing/ 但它不起作用
这解决了我的问题
@Component
public class RoutingDataSource extends AbstractRoutingDataSource {
@Autowired
private DatabaseMap databaseMap;
@Override
public void afterPropertiesSet() {
setTargetDataSources(databaseMap.getSourcesMap());
setDefaultTargetDataSource(databaseMap.getSourcesMap().get("DEFAULT"));
super.afterPropertiesSet();
}
@Override
protected Object determineCurrentLookupKey() {
return DatabaseContextHolder.getDatabaseType();
}
}
@Configuration
public class DatabaseLoader {
@Bean
public DatabaseMap databaseMap() {
//init databases using DataSourceBuilder
return databaseMap;
}
}
我更改上下文的方式与此处相同https://spring.io/blog/2007/01/23/dynamic-datasource-routing/