public class SingleConnectionFactory extends DelegatingConnectionFactory implements DisposableBean
Connection
をラップする DelegatingConnectionFactory
の実装。明らかに、これはマルチスレッド対応ではありません。 シャットダウン時に、誰かが close()
メソッドを介して基になる Connection
を閉じる必要があることに注意してください。SmartConnectionFactory 対応の場合(たとえば、ConnectionFactoryUtils.releaseConnection(Connection, ConnectionFactory)
を使用する場合)、クライアントコードは Connection
ハンドルで close を呼び出すことはありません。
永続化ツールを使用する場合など、クライアントコードがプールされた Connection
を想定して Connection.close()
を呼び出す場合は、"suppressClose" を true
に設定します。これにより、物理的な接続ではなく、クローズ抑制プロキシが返されます。
これは主に、接続の使用箇所のテストとパイプライン化を目的としています。例: ConnectionFactory
で動作することが期待されるコードについて、アプリケーションサーバーの外部で簡単にテストできます。この実装は、接続プールのようなユーティリティとしては機能しないことに注意してください。接続プーリングには、r2dbc-pool
などの ConnectionFactory
のプーリングが必要です。
create()
, Connection.close()
, ConnectionFactoryUtils.releaseConnection(Connection, ConnectionFactory)
コンストラクターと説明 |
---|
SingleConnectionFactory(Connection target, ConnectionFactoryMetadata metadata, boolean suppressClose) |
SingleConnectionFactory(ConnectionFactory targetConnectionFactory) Bean スタイルの構成のコンストラクター。 |
SingleConnectionFactory(StringSE url, boolean suppressClose) R2DBC 接続 URL を使用して新しい SingleConnectionFactory を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
reactor.core.publisher.Mono<? extends Connection> | create() |
void | destroy() 基になる Connection を閉じます。 |
protected BooleanSE | getAutoCommitValue() 返された Connection の "autoCommit" 設定を上書きする必要があるかどうかを返します。 |
protected Connection | getCloseSuppressingConnectionProxy(Connection target) 指定された Connection を、すべてのメソッド呼び出しを委譲するがクローズ呼び出しを抑制するプロキシでラップします。 |
protected boolean | isSuppressClose() 返された Connection が近接抑制プロキシであるか物理 Connection であるかを返します。 |
protected reactor.core.publisher.Mono<Connection> | prepareConnection(Connection connection) ご使用前に Connection をご用意ください。 |
reactor.core.publisher.Mono<VoidSE> | resetConnection() 基礎となる共有接続をリセットして、次のアクセスで再初期化します。 |
void | setAutoCommit(boolean autoCommit) 返された Connection の "autoCommit" 設定を上書きするかどうかを設定します。 |
void | setSuppressClose(boolean suppressClose) 返される Connection を近接抑制プロキシにするか、物理 Connection にするかを設定します。 |
getMetadata, getTargetConnectionFactory, unwrap
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public SingleConnectionFactory(ConnectionFactory targetConnectionFactory)
public SingleConnectionFactory(StringSE url, boolean suppressClose)
SingleConnectionFactory
を作成します。url
- ConnectionFactory
ディスカバリへのアクセスに使用する R2DBCURLsuppressClose
- 返された Connection
が近接抑制プロキシまたは物理 Connection
である必要がある場合 ConnectionFactories.get(String)
public SingleConnectionFactory(Connection target, ConnectionFactoryMetadata metadata, boolean suppressClose)
target
- 基になるターゲット Connection
metadata
- この ConnectionFactory
に関連付けられる ConnectionFactory
メタデータ suppressClose
- close()
呼び出しを抑制する Connection
で Connection
をラップする必要がある場合は true
(プールされた Connection
を期待するアプリケーションで通常の close()
の使用を可能にするため)public void setSuppressClose(boolean suppressClose)
Connection
を近接抑制プロキシにするか、物理 Connection
にするかを設定します。protected boolean isSuppressClose()
Connection
が近接抑制プロキシであるか物理 Connection
であるかを返します。public void setAutoCommit(boolean autoCommit)
Connection
の "autoCommit" 設定を上書きするかどうかを設定します。@Nullable protected BooleanSE getAutoCommitValue()
Connection
の "autoCommit" 設定を上書きする必要があるかどうかを返します。null
public reactor.core.publisher.Mono<? extends Connection> create()
ConnectionFactory
の create
DelegatingConnectionFactory
の create
public void destroy()
Connection
を閉じます。この ConnectionFactory
のプロバイダーは、適切なシャットダウンに注意する必要があります。 この Bean は DisposableBean
を実装しているため、Bean ファクトリは、キャッシュされたシングルトンが破棄されると、これを自動的に呼び出します。
DisposableBean
の destroy
public reactor.core.publisher.Mono<VoidSE> resetConnection()
protected reactor.core.publisher.Mono<Connection> prepareConnection(Connection connection)
Connection
を準備してください。構成されている場合、自動コミット設定を適用します。connection
- リクエストされた Connection
Connection
protected Connection getCloseSuppressingConnectionProxy(Connection target)
Connection
を、すべてのメソッド呼び出しを委譲するがクローズ呼び出しを抑制するプロキシでラップします。target
- ラップする元の Connection