2017-06-15 8 views
0

私はマルチテナントアプリケーションに取り組んでいますが、今はWeb上のさまざまな実装を見て、そのようなタスクを実装するために必要な要件を理解しています。 Hibernate + Springブートは私が使用しようとしているテクノロジーです。スプリングブートによるマルチテナント

私の読んだところでは、すべてのチュートリアルでは、アプリケーションの起動時にセッションファクトリが起動するようにデータファイルを設定ファイルに宣言するのと同じ方法を使用していますが、私はテナントを動的に追加し、データソース情報を入力することができます。 この方法では、設定ファイルに触れてアプリを再起動する必要なく、新しいテナントの情報を取得できます。

テナントのデータソースの資格情報などを保存できる別のデータベースがあると考えました。この要件を解決する別の方法や、私が参照できる既存の実装へのリンクを教えてください。

ありがとうございました

答えて

1

私はこれまで同様の要件を持っていました。

私はDataSourceプロキシクラスを実装しました。クラスにはテナントリゾルバとシンプルなデータソースのマップがあります。 DataSourceが必要な場所はすべてプロキシを使用します。

どのようなメソッド呼び出しでも。 getConnection()テナントを解決し、マップに既に作成されたDataSourceが含まれているかどうかを確認します(新しいDataSourceがテナント用に作成されずDBに格納されていない場合)。次に、マップからの実際のDataSourceの同じメソッドが呼び出されます。

テナントリゾルバは、テナント値がフィルタに格納され(リクエストヘッダからテナントを取得)、DataSourceプロキシで使用されるThreadLocalベースです。

1

あなたがする必要があるのは、AbstractRoutingDataSourceを介してSpring Framweorkの動的データソースルーティングを使用することです。 This answerはすべてあなたのために説明します。

1

question .IはMultiTenantConnectionProviderCurrentTenantIdentifierResolverを実装.AND tenant.This linksでデータソースを選択するDataSourceLookupを使用するには、私には便利です。

関連する問題