如果你确实DataSource
以多租户方式使用了不同的es(本质上是将请求分配给,DataSource
并在整个请求中坚持使用),则应该看看AbstractRoutingDataSource
。它主要提供了一种方法来保持Map
的DataSourceES
以及回调方法返回一个键被用于查找DataSource
到最终被使用。此方法的实现通常会查找一些线程绑定键,然后将其返回(甚至将其映射到DataSource
映射键上)。你只需要确保某个Web组件首先将该键绑定到线程即可。
如果你拥有适当的位置,则Spring配置只需为你的子类设置一个bean AbstractRoutingDataSource
并将其映射传递DataSources
到该bean 。你的Spring Data JPA
设置将保持默认方式。该EntityManagerfactorybean
指的是AbstractRoutingDataSource
,你有一个单一的<jpa:repositories />
唯一元素。