【问题标题】:Spring JPA change datasource depending on request headerSpring JPA 根据请求标头更改数据源
【发布时间】:2016-04-28 17:29:24
【问题描述】:

我用 spring-data-rest 开发了一个应用程序。 我喜欢它,它就像一个魅力。

我想要做的(为多个客户实现一个后端)是根据在自定义请求标头中发送的 apikey 更改我的存储库的数据源。

可以从管理所有数据库配置的外部微服务中检索连接信息(网址、凭据、数据库)。

这个想法是在启动时检索所有可用的数据库连接,并将它们存储在一个映射中,其中 apikey 作为键,连接信息作为值。

我不清楚如何在运行时为每个传入请求更改我的存储库的数据源。

有什么想法吗?

【问题讨论】:

    标签: spring jpa spring-data-rest


    【解决方案1】:

    根据您的 JPA 提供商,您需要的是多租户支持。

    对于 Hibernate,有一个很好的 multi-tenancy API 可用,它可以很好地插入 Spring 中,用于配置要使用的数据源。 MultiTenantConnectionProviderCurrentTenantIdentifierResolver 了解一些 API 详细信息。

    【讨论】:

    • 感谢您的回答。多租户将我推向了正确的方向。对此点赞。
    【解决方案2】:

    我终于找到了使用 AbstractRoutingDataSource 的解决方案。 这篇文章拯救了我的一天。一个非常易于使用和理解的解决方案。 http://fizzylogic.nl/2016/01/24/Make-your-Spring-boot-application-multi-tenant-aware-in-2-steps/

    【讨论】:

      猜你喜欢
      • 2016-03-30
      • 1970-01-01
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多