【问题标题】:Data source inject to Crud Repository spring boot数据源注入 Crud Repository spring boot
【发布时间】:2016-01-28 18:20:34
【问题描述】:

有没有办法将数据源注入或设置到 Crud Repository? 我需要一个存储库和多个具有相同架构的数据库。 我尝试使用数据库名称和数据源制作哈希映射,并使用类似 https://spring.io/blog/2007/01/23/dynamic-datasource-routing/ 的东西,但它不起作用

【问题讨论】:

  • 参考链接:Spring-boot multiple datasourceUse multiple database with spring 这些问题可以解决您的问题。
  • 不,它们不是因为我需要一个存储库和一个 DAO。我只是想出了如何做到这一点。感谢您的帮助。
  • 您能否提供解决方案作为答案(您可以接受自己的答案)

标签: java spring-boot repository spring-data


【解决方案1】:

这解决了我的问题

@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/

相同

【讨论】:

  • 你能把代码放在DatabaseLoader的databaseMap函数中吗?
猜你喜欢
  • 2018-01-27
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多