クラス GatewayProxyFactoryBean<T>

型パラメーター:
T - プロキシを構築する対象のゲートウェイインターフェース。
実装されたすべてのインターフェース:
AdviceInterceptorMethodInterceptorAwareBeanClassLoaderAwareBeanFactoryAwareBeanNameAwareDisposableBeanFactoryBean<T>InitializingBeanApplicationContextAwareLifecyclePhasedSmartLifecycleExpressionCapableNamedComponentIntegrationManagementManageableLifecycleManageableSmartLifecycleTrackableComponent
既知の直属サブクラス
AnnotationGatewayProxyFactoryBean

public class GatewayProxyFactoryBean<T> extends AbstractEndpoint implements TrackableComponent, FactoryBean<T>, MethodInterceptor, BeanClassLoaderAware, IntegrationManagement
提供されたサービスインターフェースのプロキシを生成し、アプリケーションコードが認識せずにメッセージングコンポーネントとの対話を可能にして、POJO スタイルの対話を可能にします。このコンポーネントは、必要に応じて型変換を実行するために、IntegrationUtils.INTEGRATION_CONVERSION_SERVICE_BEAN_NAME という名前で外側の BeanFactory に設定された ConversionService も認識しています(INT-1230 での Jon Schneider の貢献と提案のおかげです)。
作成者:
Mark Fisher, Oleg Zhurakousky, Gary Russell, Artem Bilan, JingPeng Xie, Christian Tzolov
  • コンストラクターの詳細

    • GatewayProxyFactoryBean

      public GatewayProxyFactoryBean()
      setter インジェクションによってサービスインターフェース型を構成できるファクトリを作成します。何も設定されていない場合、初期化時にデフォルトのサービスインターフェース型 RequestReplyExchanger にフォールバックします。
    • GatewayProxyFactoryBean

      public GatewayProxyFactoryBean(ClassSE<T> serviceInterface)
  • メソッドの詳細

    • setDefaultRequestChannel

      public void setDefaultRequestChannel(MessageChannel defaultRequestChannel)
      デフォルトのリクエストチャネルを設定します。
      パラメーター:
      defaultRequestChannel - アノテーションを使用してリクエストチャネルが構成されていない場合にリクエストメッセージが送信されるチャネル。
    • setDefaultRequestChannelName

      public void setDefaultRequestChannelName(StringSE defaultRequestChannelName)
      デフォルトのリクエストチャネル Bean 名を設定します。
      パラメーター:
      defaultRequestChannelName - リクエストチャネルがアノテーションで構成されていない場合にリクエストメッセージが送信されるチャネル名。
      導入:
      4.2.9
    • getDefaultRequestChannel

      @Nullable protected MessageChannel getDefaultRequestChannel()
    • getDefaultRequestChannelName

      @Nullable protected StringSE getDefaultRequestChannelName()
    • setDefaultReplyChannel

      public void setDefaultReplyChannel(MessageChannel defaultReplyChannel)
      デフォルトの応答チャネルを設定します。デフォルトの応答チャネルが提供されておらず、アノテーションで応答チャネルが構成されていない場合、匿名の一時チャネルが応答の処理に使用されます。
      パラメーター:
      defaultReplyChannel - アノテーション付きの応答チャネルが構成されていない場合に応答メッセージを受信するチャネル
    • setDefaultReplyChannelName

      public void setDefaultReplyChannelName(StringSE defaultReplyChannelName)
      デフォルトの応答チャネル Bean 名を設定します。デフォルトの応答チャネルが提供されておらず、アノテーションで応答チャネルが構成されていない場合、匿名の一時チャネルが応答の処理に使用されます。
      パラメーター:
      defaultReplyChannelName - アノテーション付きの応答チャネルが構成されていない場合に応答メッセージを受信するチャネル名
      導入:
      4.2.9
    • getDefaultReplyChannel

      @Nullable protected MessageChannel getDefaultReplyChannel()
    • getDefaultReplyChannelName

      @Nullable protected StringSE getDefaultReplyChannelName()
    • setErrorChannel

      public void setErrorChannel(MessageChannel errorChannel)
      エラーチャンネルを設定します。エラーチャネルが提供されていない場合、このゲートウェイは例外を呼び出し元に伝達します。例外を完全に抑制するには、ここで "nullChannel" への参照を提供します。
      パラメーター:
      errorChannel - エラーチャネル。
    • setErrorChannelName

      public void setErrorChannelName(StringSE errorChannelName)
      エラーチャネル名を設定します。エラーチャネルが提供されていない場合、このゲートウェイは例外を呼び出し元に伝達します。例外を完全に抑制するには、ここで "nullChannel" への参照を提供します。
      パラメーター:
      errorChannelName - エラーチャネル Bean 名。
      導入:
      4.2.9
    • getErrorChannel

      @Nullable protected MessageChannel getErrorChannel()
    • getErrorChannelName

      @Nullable protected StringSE getErrorChannelName()
    • setDefaultRequestTimeout

      public void setDefaultRequestTimeout(LongSE defaultRequestTimeout)
      リクエストメッセージを送信するためのデフォルトのタイムアウト値を設定します。アノテーションまたはメソッド要素で明示的に構成されていない場合、この値が使用されます。
      パラメーター:
      defaultRequestTimeout - ミリ秒単位のタイムアウト値
    • setDefaultRequestTimeoutExpression

      public void setDefaultRequestTimeoutExpression(Expression defaultRequestTimeout)
      評価する式を設定して、リクエストメッセージを送信するためのデフォルトのタイムアウト値を決定します。アノテーションまたはメソッド要素で明示的に構成されていない場合、この値が使用されます。
      パラメーター:
      defaultRequestTimeout - ミリ秒単位のタイムアウト値
      導入:
      5.0
    • setDefaultRequestTimeoutExpressionString

      public void setDefaultRequestTimeoutExpressionString(StringSE defaultRequestTimeout)
      評価する式を設定して、リクエストメッセージを送信するためのデフォルトのタイムアウト値を決定します。アノテーションまたはメソッド要素で明示的に構成されていない場合、この値が使用されます。
      パラメーター:
      defaultRequestTimeout - ミリ秒単位のタイムアウト値
      導入:
      5.0
    • getDefaultRequestTimeout

      @Nullable protected Expression getDefaultRequestTimeout()
    • setDefaultReplyTimeout

      public void setDefaultReplyTimeout(LongSE defaultReplyTimeout)
      応答メッセージを受信するためのデフォルトのタイムアウト値を設定します。アノテーションまたはメソッド要素で明示的に構成されていない場合、この値が使用されます。
      パラメーター:
      defaultReplyTimeout - ミリ秒単位のタイムアウト値
    • setDefaultReplyTimeoutExpression

      public void setDefaultReplyTimeoutExpression(Expression defaultReplyTimeout)
      評価する式を設定して、応答メッセージを受信するためのデフォルトのタイムアウト値を決定します。アノテーションまたはメソッド要素で明示的に構成されていない場合、この値が使用されます。
      パラメーター:
      defaultReplyTimeout - ミリ秒単位のタイムアウト値
      導入:
      5.0
    • setDefaultReplyTimeoutExpressionString

      public void setDefaultReplyTimeoutExpressionString(StringSE defaultReplyTimeout)
      評価する式を設定して、応答メッセージを受信するためのデフォルトのタイムアウト値を決定します。アノテーションまたはメソッド要素で明示的に構成されていない場合、この値が使用されます。
      パラメーター:
      defaultReplyTimeout - ミリ秒単位のタイムアウト値
      導入:
      5.0
    • getDefaultReplyTimeout

      @Nullable protected Expression getDefaultReplyTimeout()
    • setShouldTrack

      public void setShouldTrack(boolean shouldTrack)
      次で指定:
      インターフェース TrackableComponentsetShouldTrack 
    • setAsyncExecutor

      public void setAsyncExecutor(@Nullable ExecutorSE executor)
      ゲートウェイメソッドが FutureSE または ListenableFuture を返すときに使用する executor を設定します。これを null に設定して非同期処理を無効にします。FutureSE 戻り値の型はすべてダウンストリームフローによって返される必要があります。
      パラメーター:
      executor - エグゼキューター。
    • setTypeConverter

      public void setTypeConverter(TypeConverter typeConverter)
    • setMethodMetadataMap

      public void setMethodMetadataMap(MapSE<StringSE,GatewayMethodMetadata> methodMetadataMap)
    • setGlobalMethodMetadata

      public void setGlobalMethodMetadata(GatewayMethodMetadata globalMethodMetadata)
    • getGlobalMethodMetadata

      @Nullable protected GatewayMethodMetadata getGlobalMethodMetadata()
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE beanClassLoader)
      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
    • setMapper

      public final void setMapper(MethodArgsMessageMapper mapper)
      MethodArgsHolder から Message にマップするカスタム MethodArgsMessageMapper を提供します。
      パラメーター:
      mapper - マッパー。
    • getMapper

      @Nullable protected MethodArgsMessageMapper getMapper()
    • setProxyDefaultMethods

      public void setProxyDefaultMethods(boolean proxyDefaultMethods)
      インターフェースの default メソッドもプロキシする必要があるかどうかを示します。明示的な Gateway アノテーションがメソッドに存在する場合、このオプションとは無関係にプロキシされます。注: JDK クラスのデフォルトメソッド(Function など)はプロキシできますが、MethodHandle.Lookup の内部 Java セキュリティ制限によって MethodHandle を介して呼び出すことはできません。
      パラメーター:
      proxyDefaultMethods - デフォルトのメソッドをプロキシする、または MethodHandle を介して呼び出すブールフラグ。
      導入:
      5.3
    • getAsyncExecutor

      @Nullable protected AsyncTaskExecutor getAsyncExecutor()
    • isAsyncExecutorExplicitlySet

      protected boolean isAsyncExecutorExplicitlySet()
    • getGateways

      public MapSE<MethodSE,MessagingGatewaySupport> getGateways()
      このファクトリ Bean によって生成された MethodSE のマップを MessagingGatewaySupport に戻します。
      戻り値:
      地図。
      導入:
      4.3
    • registerMetricsCaptor

      public void registerMetricsCaptor(MetricsCaptor metricsCaptorToRegister)
      インターフェースからコピーされた説明: IntegrationManagement
      MetricsCaptor を注入します。ObservationRegistry が指定されている場合は無視されます。
      次で指定:
      インターフェース IntegrationManagementregisterMetricsCaptor 
      パラメーター:
      metricsCaptorToRegister - キャプター。
      関連事項:
    • setErrorOnTimeout

      public void setErrorOnTimeout(boolean errorOnTimeout)
      errorOnTimeout が true の場合、タイムアウトが発生しても、ゲートウェイメソッド呼び出しの結果として null は返されません。代わりに、MessageTimeoutException がスローされるか、エラーメッセージがエラーチャネルにパブリッシュされます。
      パラメーター:
      errorOnTimeout - true の場合、応答タイムアウト時にエラーメッセージを作成します。
      導入:
      6.2
      関連事項:
    • onInit

      protected void onInit()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスは、初期化ロジック用にこれを実装できます。
      オーバーライド:
      クラス AbstractEndpointonInit 
    • getObjectType

      public ClassSE<?> getObjectType()
      次で指定:
      インターフェース FactoryBean<T>getObjectType 
    • getObject

      public T getObject()
      次で指定:
      インターフェース FactoryBean<T>getObject 
    • invoke

      @Nullable public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
      次で指定:
      インターフェース MethodInterceptorinvoke 
      例外:
      ThrowableSE
    • doInvoke

      @Nullable protected ObjectSE doInvoke(MethodInvocation invocation, boolean runningOnCallerThread) throws ThrowableSE
      例外:
      ThrowableSE
    • doStart

      protected void doStart()
      クラスからコピーされた説明: AbstractEndpoint
      サブクラスは、開始動作でこのメソッドを実装する必要があります。このメソッドは、AbstractEndpoint.lifecycleLock を保持しているときに呼び出されます。
      次で指定:
      クラス AbstractEndpointdoStart 
    • doStop

      protected void doStop()
      クラスからコピーされた説明: AbstractEndpoint
      サブクラスは、停止動作でこのメソッドを実装する必要があります。このメソッドは、AbstractEndpoint.lifecycleLock を保持しているときに呼び出されます。
      次で指定:
      クラス AbstractEndpointdoStop 
    • destroy

      public void destroy()
      次で指定:
      インターフェース DisposableBeandestroy 
      次で指定:
      インターフェース IntegrationManagementdestroy 
      オーバーライド:
      クラス AbstractEndpointdestroy