クラス CachingClientConnectionFactory
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory
org.springframework.integration.ip.tcp.connection.AbstractClientConnectionFactory
org.springframework.integration.ip.tcp.connection.CachingClientConnectionFactory
- 実装されているすべてのインターフェース:
Aware
、BeanFactoryAware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、ApplicationEventPublisherAware
、Lifecycle
、ComponentSourceAware
、ExpressionCapable
、ConnectionFactory
、NamedComponent
、ManageableLifecycle
public class CachingClientConnectionFactory
extends AbstractClientConnectionFactory
implements DisposableBean
基礎となるターゲットファクトリからの接続をキャッシュする接続ファクトリ。使用後に接続がキャッシュに戻されるように、基になるファクトリは
singleUse=true
を持つように再構成されます。ユーザーはその後、基になるプロパティを false に設定しないでください。設定すると、キャッシュが不足します。- 導入:
- 2.2
- 作成者:
- Gary Russell, Christian Tzolov, Artem Bilan
フィールドのサマリー
クラス org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory から継承されたフィールド
connections, connectionsMonitor, DEFAULT_REPLY_TIMEOUT, lifecycleMonitor
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, logger
コンストラクターの概要
コンストラクターコンストラクター説明CachingClientConnectionFactory
(AbstractClientConnectionFactory target, int poolSize) 指定されたプールサイズで、指定されたファクトリに委譲するキャッシュ接続ファクトリを構築します。メソッドのサマリー
修飾子と型メソッド説明boolean
closeConnection
(StringSE connectionId) 指定された接続 ID の接続を閉じます。void
destroy()
void
このファクトリによって作成された接続に自動的に(デフォルト)またはTcpListener
を追加するかどうかを設定します。boolean
void
forceClose
(TcpConnection connection) 接続を強制的に閉じ、共有接続の場合はフィールドを null にします。int
int
サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。Deserializer
<?> getHost()
int
int
int
getPort()
Serializer
<?> int
int
int
int
int
int
hashCode()
boolean
boolean
boolean
boolean
boolean
void
registerListener
(TcpListener listener) データの受信に使用されるデリゲート TCP クライアント接続ファクトリには、メッセージを送信するリスナーが必要です。void
registerSender
(TcpSender sender) TcpSender を登録します。サーバーソケットの場合、接続情報を提供するために使用されるため、送信者は受信メッセージに返信するために使用できます。void
setComponentName
(StringSE componentName) このコンポーネントの名前を設定します。void
setConnectionWaitTimeout
(int connectionWaitTimeout) void
setDeserializer
(Deserializer<?> deserializer) void
setInterceptorFactoryChain
(TcpConnectionInterceptorFactoryChain interceptorFactoryChain) void
setLookupHost
(boolean lookupHost) true の場合、リモート IP アドレスで DNS 逆ルックアップが行われます。void
setMapper
(TcpMessageMapper mapper) void
setPoolSize
(int poolSize) void
setSerializer
(Serializer<?> serializer) void
setSingleUse
(boolean singleUse) このファクトリでは無視されます。接続は常にプールにキャッシュされます。void
setSoKeepAlive
(boolean soKeepAlive) void
setSoLinger
(int soLinger) void
setSoReceiveBufferSize
(int soReceiveBufferSize) void
setSoSendBufferSize
(int soSendBufferSize) void
setSoTcpNoDelay
(boolean soTcpNoDelay) void
setSoTimeout
(int soTimeout) void
setSoTrafficClass
(int soTrafficClass) void
setTaskExecutor
(ExecutorSE taskExecutor) void
start()
void
stop()
サーバーの停止。クラス org.springframework.integration.ip.tcp.connection.AbstractClientConnectionFactory から継承されたメソッド
buildNewConnection, getConnection, getConnectionTest, getConnectTimeout, getTheConnection, initializeConnection, obtainNewConnection, obtainSharedConnection, setConnectionTest, setConnectTimeout, setTheConnection
クラス org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory から継承されたメソッド
addConnection, checkActive, delayRead, doAccept, getApplicationEventPublisher, getDelayedReads, getLifecycleMonitor, getListener, getOpenConnectionIds, getReadDelay, getSenders, getSslHandshakeTimeout, getTaskExecutor, getTcpSocketSupport, harvestClosedConnections, isActive, onInit, processNioSelections, setActive, setApplicationEventPublisher, setHost, setLeaveOpen, setNioHarvestInterval, setPort, setReadDelay, setSocketAttributes, setSslHandshakeTimeout, setTcpSocketSupport, toString, unregisterSender, wrapConnection
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler
コンストラクターの詳細
CachingClientConnectionFactory
指定されたプールサイズで、指定されたファクトリに委譲するキャッシュ接続ファクトリを構築します。- パラメーター:
target
- ターゲットファクトリ。poolSize
- 許可する接続の数。
メソッドの詳細
setConnectionWaitTimeout
public void setConnectionWaitTimeout(int connectionWaitTimeout) - パラメーター:
connectionWaitTimeout
- 新しいタイムアウト。- 関連事項:
setPoolSize
public void setPoolSize(int poolSize) - パラメーター:
poolSize
- 新しいプールサイズ。- 関連事項:
getPoolSize
public int getPoolSize()- 戻り値:
- プールサイズ。
- 関連事項:
getIdleCount
public int getIdleCount()- 戻り値:
- アイドルカウント。
- 関連事項:
getActiveCount
public int getActiveCount()- 戻り値:
- アクティブなカウント。
- 関連事項:
getAllocatedCount
public int getAllocatedCount()- 戻り値:
- 割り当てられたカウント。
- 関連事項:
obtainConnection
- オーバーライド:
- クラス
AbstractClientConnectionFactory
のobtainConnection
isRunning
public boolean isRunning()- 次で指定:
- インターフェース
Lifecycle
のisRunning
- 次で指定:
- インターフェース
ManageableLifecycle
のisRunning
- オーバーライド:
- クラス
AbstractConnectionFactory
のisRunning
hashCode
setComponentName
クラスからコピーされた説明:IntegrationObjectSupport
このコンポーネントの名前を設定します。- オーバーライド:
- クラス
IntegrationObjectSupport
のsetComponentName
- パラメーター:
componentName
- コンポーネント名。
getComponentType
クラスからコピーされた説明:IntegrationObjectSupport
サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。- 次で指定:
- インターフェース
NamedComponent
のgetComponentType
- オーバーライド:
- クラス
IntegrationObjectSupport
のgetComponentType
equals
getSoTimeout
public int getSoTimeout()- オーバーライド:
- クラス
AbstractConnectionFactory
のgetSoTimeout
- 戻り値:
- soTimeout
setSoTimeout
public void setSoTimeout(int soTimeout) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetSoTimeout
- パラメーター:
soTimeout
- 設定する soTimeout(ミリ秒単位)
getSoReceiveBufferSize
public int getSoReceiveBufferSize()- オーバーライド:
- クラス
AbstractConnectionFactory
のgetSoReceiveBufferSize
- 戻り値:
- soReceiveBufferSize
setSoReceiveBufferSize
public void setSoReceiveBufferSize(int soReceiveBufferSize) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetSoReceiveBufferSize
- パラメーター:
soReceiveBufferSize
- 設定する soReceiveBufferSize
getSoSendBufferSize
public int getSoSendBufferSize()- オーバーライド:
- クラス
AbstractConnectionFactory
のgetSoSendBufferSize
- 戻り値:
- soSendBufferSize
setSoSendBufferSize
public void setSoSendBufferSize(int soSendBufferSize) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetSoSendBufferSize
- パラメーター:
soSendBufferSize
- 設定する soSendBufferSize
isSoTcpNoDelay
public boolean isSoTcpNoDelay()- オーバーライド:
- クラス
AbstractConnectionFactory
のisSoTcpNoDelay
- 戻り値:
- soTcpNoDelay
setSoTcpNoDelay
public void setSoTcpNoDelay(boolean soTcpNoDelay) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetSoTcpNoDelay
- パラメーター:
soTcpNoDelay
- 設定する soTcpNoDelay
getSoLinger
public int getSoLinger()- オーバーライド:
- クラス
AbstractConnectionFactory
のgetSoLinger
- 戻り値:
- soLinger
setSoLinger
public void setSoLinger(int soLinger) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetSoLinger
- パラメーター:
soLinger
- 設定する soLinger
isSoKeepAlive
public boolean isSoKeepAlive()- オーバーライド:
- クラス
AbstractConnectionFactory
のisSoKeepAlive
- 戻り値:
- soKeepAlive
setSoKeepAlive
public void setSoKeepAlive(boolean soKeepAlive) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetSoKeepAlive
- パラメーター:
soKeepAlive
- 設定する soKeepAlive
getSoTrafficClass
public int getSoTrafficClass()- オーバーライド:
- クラス
AbstractConnectionFactory
のgetSoTrafficClass
- 戻り値:
- soTrafficClass
setSoTrafficClass
public void setSoTrafficClass(int soTrafficClass) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetSoTrafficClass
- パラメーター:
soTrafficClass
- 設定する soTrafficClass
getHost
- オーバーライド:
- クラス
AbstractConnectionFactory
のgetHost
- 戻り値:
- ザホスト
getPort
public int getPort()- オーバーライド:
- クラス
AbstractConnectionFactory
のgetPort
- 戻り値:
- 港
getSender
- オーバーライド:
- クラス
AbstractConnectionFactory
のgetSender
- 戻り値:
- 存在する場合、最初の送信者。
getSerializer
- オーバーライド:
- クラス
AbstractConnectionFactory
のgetSerializer
- 戻り値:
- シリアライザー
getDeserializer
- オーバーライド:
- クラス
AbstractConnectionFactory
のgetDeserializer
- 戻り値:
- デシリアライザー
getMapper
- オーバーライド:
- クラス
AbstractConnectionFactory
のgetMapper
- 戻り値:
- マッパー
registerListener
データの受信に使用されるデリゲート TCP クライアント接続ファクトリには、メッセージを送信するリスナーが必要です。これは、送信ゲートウェイまたはコラボレーションチャネルアダプターのペアに使用されるクライアントファクトリに適用されます。初期化中に、ファクトリにリスナーがないことが検出されると、そのリスニングロジック(アクティブスレッド)は終了します。
ファクトリに登録されたリスナーは、作成される各接続に提供されるため、onMessage() メソッドを呼び出すことができます。
このコードは、このリスナーがリスニングロジックを実行する必要があることをファクトリに通知するという最初の要件を満たします。
実際の接続を CachedConnections でラップすると、接続にはリスナーとしてラッパーが渡されるため、onMessage() のヘッダーを拡張できます。その後、ラッパーは変更されたメッセージを使用して、ここで提供される実際のリスナーを呼び出します。
- オーバーライド:
- クラス
AbstractConnectionFactory
のregisterListener
- パラメーター:
listener
- TcpListener。
registerSender
クラスからコピーされた説明:AbstractConnectionFactory
TcpSender を登録します。サーバーソケットの場合、接続情報を提供するために使用されるため、送信者は受信メッセージに返信するために使用できます。- オーバーライド:
- クラス
AbstractConnectionFactory
のregisterSender
- パラメーター:
sender
- 送り主
setTaskExecutor
- オーバーライド:
- クラス
AbstractConnectionFactory
のsetTaskExecutor
- パラメーター:
taskExecutor
- 設定する taskExecutor
setDeserializer
- オーバーライド:
- クラス
AbstractConnectionFactory
のsetDeserializer
- パラメーター:
deserializer
- 設定するデシリアライザー
setSerializer
- オーバーライド:
- クラス
AbstractConnectionFactory
のsetSerializer
- パラメーター:
serializer
- 設定するシリアライザー
setMapper
- オーバーライド:
- クラス
AbstractConnectionFactory
のsetMapper
- パラメーター:
mapper
- 設定するマッパー。デフォルトはTcpMessageMapper
です
isSingleUse
public boolean isSingleUse()- オーバーライド:
- クラス
AbstractConnectionFactory
のisSingleUse
- 戻り値:
- singleUse
setSingleUse
public void setSingleUse(boolean singleUse) このファクトリでは無視されます。接続は常にプールにキャッシュされます。基礎となる接続ファクトリの singleUse プロパティは強制的に true に設定されます (これにより接続が返されます)。初期化後に基礎となるファクトリでこれを false に設定すると、キャッシュ不足が発生します。- オーバーライド:
- クラス
AbstractConnectionFactory
のsetSingleUse
- パラメーター:
singleUse
- singleUse。
setInterceptorFactoryChain
public void setInterceptorFactoryChain(TcpConnectionInterceptorFactoryChain interceptorFactoryChain) - オーバーライド:
- クラス
AbstractConnectionFactory
のsetInterceptorFactoryChain
setLookupHost
public void setLookupHost(boolean lookupHost) クラスからコピーされた説明:AbstractConnectionFactory
true の場合、リモート IP アドレスで DNS 逆引き参照が行われます。デフォルト false: すべての環境 (例: Docker コンテナー) が信頼できる DNS 解決を実行するわけではありません。- オーバーライド:
- クラス
AbstractConnectionFactory
のsetLookupHost
- パラメーター:
lookupHost
- 設定する lookupHost
isLookupHost
public boolean isLookupHost()- オーバーライド:
- クラス
AbstractConnectionFactory
のisLookupHost
- 戻り値:
- lookupHost
forceClose
クラスからコピーされた説明:AbstractClientConnectionFactory
接続を強制的に閉じ、共有接続の場合はフィールドを null にします。- オーバーライド:
- クラス
AbstractClientConnectionFactory
のforceClose
- パラメーター:
connection
- 接続。
enableManualListenerRegistration
public void enableManualListenerRegistration()クラスからコピーされた説明:AbstractClientConnectionFactory
このファクトリによって作成された接続に自動的に(デフォルト)またはTcpListener
を追加するかどうかを設定します。デフォルトでは、ファクトリはリスナーを自動的に構成します。手動登録が行われると、リスナーが登録されるまで受信メッセージが遅延します。- オーバーライド:
- クラス
AbstractClientConnectionFactory
のenableManualListenerRegistration
closeConnection
クラスからコピーされた説明:AbstractConnectionFactory
指定された接続 ID の接続を閉じます。- オーバーライド:
- クラス
AbstractConnectionFactory
のcloseConnection
- パラメーター:
connectionId
- 接続 ID。- 戻り値:
- 接続が閉じられた場合は true。
start
public void start()- 次で指定:
- インターフェース
Lifecycle
のstart
- 次で指定:
- インターフェース
ManageableLifecycle
のstart
- オーバーライド:
- クラス
AbstractConnectionFactory
のstart
stop
public void stop()クラスからコピーされた説明:AbstractConnectionFactory
サーバーの停止。- 次で指定:
- インターフェース
Lifecycle
のstop
- 次で指定:
- インターフェース
ManageableLifecycle
のstop
- オーバーライド:
- クラス
AbstractConnectionFactory
のstop
destroy
public void destroy()- 次で指定:
- インターフェース
DisposableBean
のdestroy