1

春でマルチテナントアプリケーションを作成しようとしています。

PostgreSql データベースのテナントごとに異なるスキーマを使用しようとしています。

最初に、基本的に のマップを管理するTenantAwareDataSource拡張を作成し、テナントごとに setConnectionInitSqls() を構成しました。(プロジェクトが以前持っていたデータソースは でした)org.springframework.jdbc.datasource.AbstractDataSourceorg.apache.commons.dbcp.BasicDataSourceorg.apache.commons.dbcp.BasicDataSource

しかし友人と話し合った結果、アスペクト (aop) で実行されるすべてのステートメントのスキーマを変更し、set search_path to通常の実行の直前にステートメントを追加するというアイデアを思いつきました。

これにより、データベースへの接続が多すぎることに関連する問題が大幅に簡素化されます (常にすべてのテナントの接続プール)。

AOP を使用して追加のステートメントを実行した人はいますか? 克服すべき落とし穴はありますか?

プットバックorg.apache.commons.dbcp.BasicDataSourceして傍受することを考えています java.sql.Statements.exe*(..)

私はSpringの永続性についてあまり経験がありません。それかSQL文実行傍受(笑)。大丈夫ですか?

この記事を見つけましたが、接続ごとにリファレンスを取得する必要はないと思います。私は正しいですか?

これも見つけまし。作者が使用してorg.springframework.jdbc.core.JdbcOperationsいます。Spring Roo で生成されたプロジェクトに当てはまるかどうかはわかりません。

皆さん、ありがとうございました。

4

0 に答える 0