私はマルチテナントWebアプリケーションを作成しようとしており、良いチュートリアルhereが見つかりました。これは、新しいテナント(CurrentTenantIdentifierResolver
とHandlerInterceptorAdapter
を拡張するMultiTenancyInterceptor)を見つけるためにMVCを設定する方法、3人の異なるテナントに3つの異なるデータソースを設定する方法、そして実行時にサーバに正しいデータソースを与える方法を説明しますAbstractDataSourceBasedMultiTenantConnectionProviderImpl
ダイナミックデータソースを使用したSpringブートjpaマルチテナント
これは、私が春と冬眠の仕事でどのようにマルチテナントをしているかを理解するのに最適な出発点ですが、これをさらに進めたいと思います。テナントが完全にダイナミックになるようにしたいと思います。私はアプリケーションのために何人のテナントが存在するかを前提にしていません。
これは私が考えたものである:
- アプリケーションは起動時に(ないクラスパスで、例えばは/ usr /データ/設定)のパスをスキャンするように設定し、様々な下の様々なapplication.propertiesファイルを発見されましたディレクトリ(テナントごとに1つのディレクトリ)テナントA、テナントB、テナントC ...
- 各application.propertiesについて、Springブートは、そのファイルに基づいてデータソースを作成します(そのファイルは、ブートプロパティspring.datasource.urlのみを持ちます)。 Springクラスなどのように、単一のURLから必要な情報をすべて得ることができるので、SpringBootのプロパティを使用することは素晴らしいことに注意してください。
- (前のリンクに示すように)私はハッシュマップにその後
をそれらのデータソースの各々を登録する、基本的なマルチテナント構造は既に前述のリンクに記載されている:毎回、エンドユーザが要求を行いますブラウザは、テナントを精緻化し、正しいデータソースを返して、使用するデータベースを探します。
これまでに作成されたことがあれば、誰でも私にいくつかのリソースを教えてもらえますか(これは私が何度も始めたものです)、またはこれを達成するために使用するSpringクラス/誰もが今までにこのようなニーズを持っている場合、私がやってしまったものだ事前