2016-04-28 11 views
0

Ich entwickelte eine Anwendung mit Feder-Daten-Rest. Ich liebe es und es funktioniert wie ein Charme.Spring JPA ändern Datenquelle je nach Anfrage Header

Was ich tun möchte (um ein Backend für mehrere Kunden zu implementieren), ist die Datenquelle meines Repositorys abhängig von einem Apikey zu ändern, das in einem benutzerdefinierten Anfrage-Header gesendet wird.

Die Verbindungsinformationen (URL, Anmeldeinformationen, Datenbank) können von einem externen Microservice abgerufen werden, der alle Datenbankkonfigurationen verwaltet.

Die Idee ist, alle verfügbaren Datenbankverbindungen beim Start zu erhalten und sie in einer Karte mit apikey als Schlüssel und den Verbindungsinformationen als Wert zu speichern.

Ich bin nicht klar darüber, wie ich die Datenquelle meines Repos für jede eingehende Anfrage zur Laufzeit ändern kann.

Irgendwelche Ideen?

Antwort

2

Je nach Ihrem JPA-Anbieter wird die Mandantenfähigkeit unterstützt.

Für Hibernate gibt es eine nette multi-tenancy API, die mit Spring sehr gut für die Konfiguration der zu verwendenden Datenquelle verbunden ist. MultiTenantConnectionProvider und CurrentTenantIdentifierResolver für einige API-Details.

+0

Danke für Ihre Antwort. Mandantenfähigkeit hat mich in die richtige Richtung gedrängt. Upvote dafür. –

Verwandte Themen