クラス ShardingKeyDataSourceAdapter
java.lang.ObjectSE
org.springframework.jdbc.datasource.DelegatingDataSource
org.springframework.jdbc.datasource.ShardingKeyDataSourceAdapter
- 実装されているすべてのインターフェース:
WrapperSE、CommonDataSourceSE、DataSourceSE、InitializingBean
ターゲット
DataSourceSE 用のアダプター。シャーディングキーが指定されている場合、すべての標準 #getConnection 呼び出しに適用し、指定されたシャーディングキー値に対応するシャードへの直接接続を返すように設計されています。他のすべてのメソッドは、ターゲット DataSource の対応するメソッドに単純に委譲します。 ターゲット DataSource は createConnectionBuilder() メソッドを実装する必要があります。そうしないと、シャード接続を取得しようとすると SQLFeatureNotSupportedExceptionSE がスローされます。
このアダプターは、#getConnection 呼び出しごとに現在のシャーディングキーを取得するために使用される ShardingKeyProvider コールバックを使用して構成する必要があります。例:
ShardingKeyDataSourceAdapter dataSourceAdapter = new ShardingKeyDataSourceAdapter(dataSource);
dataSourceAdapter.setShardingKeyProvider(() -> dataSource.createShardingKeyBuilder()
.subkey(SecurityContextHolder.getContext().getAuthentication().getName(), JDBCType.VARCHAR).build());
- 導入:
- 6.1.2
- 作成者:
- Mohamed Lahyane (Anir), Juergen Hoeller
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明ShardingKeyDataSourceAdapter(DataSourceSE dataSource) 指定されたDataSourceSE をラップして、ShardingKeyDataSourceAdapterの新しいインスタンスを作成します。ShardingKeyDataSourceAdapter(DataSourceSE dataSource, ShardingKeyProvider shardingKeyProvider) 指定されたDataSourceSE をラップして、ShardingKeyDataSourceAdapterの新しいインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明ターゲットDataSourceのcreateConnectionBuilder()メソッドを使用してConnectionBuilderSE の新しいインスタンスを作成し、構成されたShardingKeyProviderから適切なシャーディングキーを設定します。提供されたシャーディングキーとスーパーシャーディングキー (使用可能な場合) を使用して、データベースシャードへの接続を取得します。getConnection(StringSE username, StringSE password) シャーディングキー (使用可能な場合) と指定された資格情報を考慮して、指定されたユーザー名とパスワードを使用してデータベースシャードへの接続を取得します。voidsetShardingKeyProvider(ShardingKeyProvider shardingKeyProvider) このアダプターにはShardingKeyProviderを設定します。クラス org.springframework.jdbc.datasource.DelegatingDataSource から継承されたメソッド
afterPropertiesSet, createShardingKeyBuilder, getLoginTimeout, getLogWriter, getParentLogger, getTargetDataSource, isWrapperFor, obtainTargetDataSource, setLoginTimeout, setLogWriter, setTargetDataSource, unwrap
コンストラクターの詳細
ShardingKeyDataSourceAdapter
指定されたDataSourceSE をラップして、ShardingKeyDataSourceAdapterの新しいインスタンスを作成します。- パラメーター:
dataSource- ラップされるターゲットDataSource
ShardingKeyDataSourceAdapter
public ShardingKeyDataSourceAdapter(DataSourceSE dataSource, ShardingKeyProvider shardingKeyProvider) 指定されたDataSourceSE をラップして、ShardingKeyDataSourceAdapterの新しいインスタンスを作成します。- パラメーター:
dataSource- ラップされるターゲットDataSourceshardingKeyProvider- シャーディングキーの取得に使用されるShardingKeyProvider
メソッドの詳細
setShardingKeyProvider
このアダプターにはShardingKeyProviderを設定します。getConnection
提供されたシャーディングキーとスーパーシャーディングキー (使用可能な場合) を使用して、データベースシャードへの接続を取得します。シャーディングキーは、構成された
ShardingKeyProviderから取得されます。- 次で指定:
- インターフェース
DataSourceSEのgetConnection - オーバーライド:
- クラス
DelegatingDataSourceのgetConnection - 戻り値:
- 直接シャード接続を表す
Connectionオブジェクト - 例外:
SQLExceptionSE- 接続の作成中にエラーが発生した場合- 関連事項:
getConnection
シャーディングキー (使用可能な場合) と指定された資格情報を考慮して、指定されたユーザー名とパスワードを使用してデータベースシャードへの接続を取得します。シャーディングキーは、構成された
ShardingKeyProviderから取得されます。- 次で指定:
- インターフェース
DataSourceSEのgetConnectionSE - オーバーライド:
- クラス
DelegatingDataSourceのgetConnection - パラメーター:
username- 接続が確立されているデータベースユーザーpassword- ユーザーのパスワード- 戻り値:
- 直接シャード接続を表す
Connectionオブジェクト - 例外:
SQLExceptionSE- 接続の作成中にエラーが発生した場合
createConnectionBuilder
ターゲットDataSourceのcreateConnectionBuilder()メソッドを使用してConnectionBuilderSE の新しいインスタンスを作成し、構成されたShardingKeyProviderから適切なシャーディングキーを設定します。- 次で指定:
- インターフェース
DataSourceSEのcreateConnectionBuilder - オーバーライド:
- クラス
DelegatingDataSourceのcreateConnectionBuilder - 戻り値:
- 直接シャード接続のビルダーを表す ConnectionBuilder オブジェクト
- 例外:
SQLExceptionSE- ConnectionBuilder の作成中にエラーが発生した場合