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