クラス SingleConnectionFactory

java.lang.ObjectSE
org.springframework.r2dbc.connection.DelegatingConnectionFactory
org.springframework.r2dbc.connection.SingleConnectionFactory
実装されたすべてのインターフェース:
ConnectionFactoryWrapped<ConnectionFactory>DisposableBean

public class SingleConnectionFactory extends DelegatingConnectionFactory implements DisposableBean
使用後に閉じられない単一の R2DBC Connection をラップする DelegatingConnectionFactory の実装。明らかに、これはマルチスレッド対応ではありません。

シャットダウン時に、誰かが close() メソッドを介して基になる Connection を閉じる必要があることに注意してください。SmartConnectionFactory 対応の場合(たとえば、ConnectionFactoryUtils.releaseConnection(Connection, ConnectionFactory) を使用する場合)、クライアントコードは Connection ハンドルで close を呼び出すことはありません。

永続化ツールを使用する場合のように、クライアントコードがプールされた Connection を想定して Connection.close() を呼び出す場合は、"suppressClose" を true に設定します。これにより、物理接続ではなく、クローズ抑制プロキシが返されます。

これは主に、接続の使用箇所のテストとパイプライン化を目的としています。例: ConnectionFactory で動作することが期待されるコードについて、アプリケーションサーバーの外部で簡単にテストできます。この実装は、接続プールのようなユーティリティとしては機能しないことに注意してください。接続プーリングには、r2dbc-pool などの ConnectionFactory のプーリングが必要です。

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

    • SingleConnectionFactory

      public SingleConnectionFactory(ConnectionFactory targetConnectionFactory)
      Bean スタイルの構成のコンストラクター。
    • SingleConnectionFactory

      public SingleConnectionFactory(StringSE url, boolean suppressClose)
      R2DBC 接続 URL を使用して新しい SingleConnectionFactory を作成します。
      パラメーター:
      url - ConnectionFactory ディスカバリへのアクセスに使用する R2DBCURL
      suppressClose - 返された Connection が近接抑制プロキシまたは物理 Connection である必要がある場合
      関連事項:
    • SingleConnectionFactory

      public SingleConnectionFactory(Connection target, ConnectionFactoryMetadata metadata, boolean suppressClose)
      指定された Connection および ConnectionFactoryMetadata を使用して新しい SingleConnectionFactory を作成します。
      パラメーター:
      target - 基になるターゲット Connection
      metadata - この ConnectionFactory に関連付けられる ConnectionFactory メタデータ
      suppressClose - close() 呼び出しを抑制する Connection で Connection をラップする必要がある場合は true (プールされた Connection を期待するアプリケーションで通常の close() の使用を可能にするため)
  • メソッドの詳細

    • setSuppressClose

      public void setSuppressClose(boolean suppressClose)
      返される Connection を近接抑制プロキシにするか、物理 Connection にするかを設定します。
    • isSuppressClose

      protected boolean isSuppressClose()
      返された Connection が近接抑制プロキシであるか物理 Connection であるかを返します。
    • setAutoCommit

      public void setAutoCommit(boolean autoCommit)
      返された Connection の "autoCommit" 設定を上書きするかどうかを設定します。
    • getAutoCommitValue

      @Nullable protected BooleanSE getAutoCommitValue()
      返された Connection の "autoCommit" 設定をオーバーライドする必要があるかどうかを返します。
      戻り値:
      "autoCommit" 値、または何も適用されない場合は null 
    • create

      public reactor.core.publisher.Mono<? extends Connection> create()
      次で指定:
      インターフェース ConnectionFactorycreate 
      オーバーライド:
      クラス DelegatingConnectionFactorycreate 
    • destroy

      public void destroy()
      基になる Connection を閉じます。この ConnectionFactory のプロバイダーは、適切なシャットダウンに注意する必要があります。

      この Bean は DisposableBean を実装しているため、Bean ファクトリは、キャッシュされたシングルトンが破棄されると、これを自動的に呼び出します。

      次で指定:
      インターフェース DisposableBeandestroy 
    • resetConnection

      public reactor.core.publisher.Mono<VoidSE> resetConnection()
      基礎となる共有接続をリセットして、次のアクセスで再初期化します。
    • prepareConnection

      protected reactor.core.publisher.Mono<Connection> prepareConnection(Connection connection)
      使用する前に Connection を準備してください。構成されている場合、自動コミット設定を適用します。
      パラメーター:
      connection - リクエストされた Connection
      戻り値:
      準備された Connection
    • getCloseSuppressingConnectionProxy

      protected Connection getCloseSuppressingConnectionProxy(Connection target)
      指定された Connection を、すべてのメソッド呼び出しを委譲するがクローズ呼び出しを抑制するプロキシでラップします。
      パラメーター:
      target - ラップする元の Connection 
      戻り値:
      ラップされた接続