クラス AbstractRoutingConnectionFactory

java.lang.ObjectSE
org.springframework.r2dbc.connection.lookup.AbstractRoutingConnectionFactory
実装されたすべてのインターフェース:
ConnectionFactoryInitializingBean

public abstract class AbstractRoutingConnectionFactory extends ObjectSE implements ConnectionFactory, InitializingBean
create() 呼び出しをルックアップキーに基づいてさまざまなターゲット factories のいずれかにルーティングする、抽象 ConnectionFactory 実装。後者は通常、(必ずしもそうではないが)何らかのサブスクライバーコンテキストから決定されます。

default ConnectionFactory をフォールバックとして構成できます。

getMetadata() の呼び出しは、構成されている場合、default ConnectionFactory にルーティングされます。

導入:
5.3
作成者:
Mark Paluch, Jens Schauder
関連事項:
  • コンストラクターの詳細

    • AbstractRoutingConnectionFactory

      public AbstractRoutingConnectionFactory()
  • メソッドの詳細

    • setTargetConnectionFactories

      public void setTargetConnectionFactories(MapSE<?,?> targetConnectionFactories)
      キーとしてルックアップキーを使用して、ターゲット ConnectionFactories のマップを指定します。マップされた値は、対応する ConnectionFactory インスタンスまたは接続ファクトリ名ストリング(ConnectionFactoryLookup を介して解決される)のいずれかです。

      キーは任意の型にすることができます。このクラスは、汎用ルックアッププロセスのみを実装します。具体的なキー表現は、resolveSpecifiedLookupKey(Object) および determineCurrentLookupKey() によって処理されます。

    • setDefaultTargetConnectionFactory

      public void setDefaultTargetConnectionFactory(ObjectSE defaultTargetConnectionFactory)
      デフォルトのターゲット ConnectionFactory を指定します(存在する場合)。

      マップされた値は、対応する ConnectionFactory インスタンスまたは接続ファクトリ名 StringSEConnectionFactoryLookup を介して解決される)のいずれかです。

      キー設定された targetConnectionFactories のいずれも current lookup key と一致しない場合、この ConnectionFactory がターゲットとして使用されます。

    • setLenientFallback

      public void setLenientFallback(boolean lenientFallback)
      現在のルックアップキーに対して特定の ConnectionFactory が見つからなかった場合、デフォルトの ConnectionFactory に寛大なフォールバックを適用するかどうかを指定します。

      デフォルトは true で、ターゲット ConnectionFactory マップに対応するエントリがないルックアップキーを受け入れます。その場合は、デフォルトの ConnectionFactory にフォールバックするだけです。

      ルックアップキーが発行されていない場合にのみフォールバックを適用する場合は、このフラグを false に切り替えます。ConnectionFactory エントリのないルックアップキーは、IllegalStateExceptionSE につながります。

      関連事項:
    • setConnectionFactoryLookup

      public void setConnectionFactoryLookup(ConnectionFactoryLookup connectionFactoryLookup)
      targetConnectionFactories マップの接続ファクトリ名ストリングの解決に使用する ConnectionFactoryLookup 実装を設定します。
    • afterPropertiesSet

      public void afterPropertiesSet()
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • resolveSpecifiedLookupKey

      protected ObjectSE resolveSpecifiedLookupKey(ObjectSE lookupKey)
      targetConnectionFactories マップで指定されているように、指定されたルックアップキーオブジェクトを、current lookup key とのマッチングに使用される実際のルックアップキーに解決します。

      デフォルトの実装は、指定されたキーをそのまま返すだけです。

      パラメーター:
      lookupKey - ユーザーが指定したルックアップキーオブジェクト
      戻り値:
      照合に必要な検索キー。
    • resolveSpecifiedConnectionFactory

      protected ConnectionFactory resolveSpecifiedConnectionFactory(ObjectSE connectionFactory) throws IllegalArgumentExceptionSE
      指定された接続ファクトリオブジェクトを ConnectionFactory インスタンスに解決します。

      デフォルトの実装は、ConnectionFactory インスタンスと接続ファクトリ名を処理します(ConnectionFactoryLookup を介して解決されます)。

      パラメーター:
      connectionFactory - targetConnectionFactories マップで指定されている接続ファクトリ値オブジェクト
      戻り値:
      解決された ConnectionFactory (非 null)
      例外:
      IllegalArgumentExceptionSE - サポートされていない値型の場合
    • create

      public reactor.core.publisher.Mono<Connection> create()
      次で指定:
      インターフェース ConnectionFactorycreate 
    • getMetadata

      public ConnectionFactoryMetadata getMetadata()
      次で指定:
      インターフェース ConnectionFactorygetMetadata 
    • determineTargetConnectionFactory

      protected reactor.core.publisher.Mono<ConnectionFactory> determineTargetConnectionFactory()
      現在のターゲット ConnectionFactory を取得します。current lookup key を決定し、targetConnectionFactories マップで検索を実行し、必要に応じて指定された default target ConnectionFactory にフォールバックします。
      戻り値:
      determineCurrentLookupKey() に従って現在の ConnectionFactory を発行する Mono 
      関連事項:
    • determineCurrentLookupKey

      protected abstract reactor.core.publisher.Mono<ObjectSE> determineCurrentLookupKey()
      現在の検索キーを決定します。これは通常、サブスクライバコンテキストをチェックするために実装されます。任意のキーを許可します。返されるキーは、resolveSpecifiedLookupKey(java.lang.Object) メソッドによって解決されるように、保存されているルックアップキー型と一致する必要があります。
      戻り値:
      ルックアップキーを発行する Mono。使用可能なルックアップキーがない場合、値を発行せずに完了する可能性があります