クラス AbstractMethodMessageHandler<T>

java.lang.ObjectSE
org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler<T>
型パラメーター:
T - HandlerMethod を受信メッセージにマッピングする情報を含むオブジェクトの型
実装されたすべてのインターフェース:
AwareInitializingBeanApplicationContextAwareMessageHandler
既知の直属サブクラス
SimpAnnotationMethodMessageHandler

public abstract class AbstractMethodMessageHandler<T> extends ObjectSE implements MessageHandler, ApplicationContextAware, InitializingBean
HandlerMethod ベースのメッセージ処理の抽象基本クラス。起動時にハンドラーメソッドを検出し、実行時に特定のメッセージに一致するハンドラーメソッドを見つけて呼び出すために必要なロジックのほとんどを提供します。

メッセージ処理中に発生した例外を処理するための例外処理メソッドの検出と呼び出しもサポートしています。

導入:
4.0
作成者:
Rossen Stoyanchev, Juergen Hoeller
  • フィールドの詳細

    • logger

      protected final Log logger
  • コンストラクターの詳細

    • AbstractMethodMessageHandler

      public AbstractMethodMessageHandler()
  • メソッドの詳細

    • setDestinationPrefixes

      public void setDestinationPrefixes(@Nullable CollectionSE<StringSE> prefixes)
      このプロパティが設定されている場合、設定された接頭辞のいずれかに一致する宛先へのメッセージのみが処理に適しています。一致する場合、プレフィックスが削除され、宛先の残りの部分のみがメソッドマッピングの目的で使用されます。

      デフォルトでは、プレフィックスは設定されていません。この場合、すべてのメッセージが処理に適格です。

    • getDestinationPrefixes

      public CollectionSE<StringSE> getDestinationPrefixes()
      設定されている宛先プレフィックスがある場合は、それを返します。
    • setCustomArgumentResolvers

      public void setCustomArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> customArgumentResolvers)
      サポートされる引数型のリゾルバーの後に使用されるカスタム HandlerMethodArgumentResolver のリストを設定します。
    • getCustomArgumentResolvers

      public ListSE<HandlerMethodArgumentResolver> getCustomArgumentResolvers()
      構成されたカスタム引数リゾルバーがあれば、それを返します。
    • setCustomReturnValueHandlers

      public void setCustomReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> customReturnValueHandlers)
      既知の型の戻り値ハンドラーの後に使用されるカスタム HandlerMethodReturnValueHandler のリストを設定します。
    • getCustomReturnValueHandlers

      public ListSE<HandlerMethodReturnValueHandler> getCustomReturnValueHandlers()
      構成されたカスタム戻り値ハンドラーを返します(ある場合)。
    • setArgumentResolvers

      public void setArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers)
      サポートされている引数型の完全なリストを構成して、デフォルトで構成されている型を効果的にオーバーライドします。これは詳細オプションです。ほとんどの場合、setCustomArgumentResolvers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver>) を使用するだけで十分です。
    • getArgumentResolvers

      public ListSE<HandlerMethodArgumentResolver> getArgumentResolvers()
      引数リゾルバーの完全なリストを返します。
    • setReturnValueHandlers

      public void setReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers)
      サポートされている戻り値の型の完全なリストを構成し、デフォルトで構成されている型を効果的にオーバーライドします。これは詳細オプションです。ほとんどの場合、setCustomReturnValueHandlers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler>) を使用するだけで十分です。
    • getReturnValueHandlers

      public ListSE<HandlerMethodReturnValueHandler> getReturnValueHandlers()
      戻り値ハンドラーの完全なリストを返します。
    • setApplicationContext

      public void setApplicationContext(@Nullable ApplicationContext applicationContext)
      インターフェースからコピーされた説明: ApplicationContextAware
      このオブジェクトが実行される ApplicationContext を設定します。通常、この呼び出しはオブジェクトの初期化に使用されます。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) および MessageSourceAware の後に呼び出されます(該当する場合)。

      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      パラメーター:
      applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト
      関連事項:
    • getApplicationContext

      @Nullable public ApplicationContext getApplicationContext()
    • afterPropertiesSet

      public void afterPropertiesSet()
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • initArgumentResolvers

      protected abstract ListSE<? extends HandlerMethodArgumentResolver> initArgumentResolvers()
      使用する引数リゾルバーのリストを返します。setArgumentResolvers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver>) を介してリゾルバーがまだ設定されていない場合にのみ呼び出されます。

      サブクラスでは、setCustomArgumentResolvers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver>) を介して構成されたカスタム引数型も考慮する必要があります。

    • initReturnValueHandlers

      protected abstract ListSE<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers()
      使用する戻り値ハンドラーのリストを返します。戻り値ハンドラーが setReturnValueHandlers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler>) を介してまだ設定されていない場合にのみ呼び出されます。

      サブクラスは、setCustomReturnValueHandlers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler>) を介して構成されたカスタム戻り値型も考慮する必要があります。

    • isHandler

      protected abstract boolean isHandler(ClassSE<?> beanType)
      指定された Bean 型をメッセージング処理メソッドに対してイントロスペクトする必要があるかどうか。
    • detectHandlerMethods

      protected final void detectHandlerMethods(ObjectSE handler)
      指定されたハンドラーにメッセージを処理できるメソッドがあるかどうかを検出し、ある場合は抽出されたマッピング情報に登録します。
      パラメーター:
      handler - チェックするハンドラー、Spring Bean 名のインスタンス
    • getMappingForMethod

      @Nullable protected abstract T getMappingForMethod(MethodSE method, ClassSE<?> handlerType)
      ハンドラーメソッドのマッピングを提供します。
      パラメーター:
      method - マッピングを提供する方法
      handlerType - ハンドラー型、場合によってはメソッドの宣言クラスのサブ型
      戻り値:
      マッピング、またはメソッドがマッピングされていない場合は null 
    • registerHandlerMethod

      protected void registerHandlerMethod(ObjectSE handler, MethodSE method, T mapping)
      ハンドラーメソッドとその一意のマッピングを登録します。
      パラメーター:
      handler - ハンドラーまたはハンドラーインスタンスの Bean 名
      method - 登録する方法
      mapping - ハンドラーメソッドに関連付けられたマッピング条件
      例外:
      IllegalStateExceptionSE - 別のメソッドが同じマッピングですでに登録されている場合
    • createHandlerMethod

      protected HandlerMethod createHandlerMethod(ObjectSE handler, MethodSE method)
      ハンドラーインスタンスまたは文字列ベースの Bean 名のいずれかであるオブジェクトハンドラーから HandlerMethod インスタンスを作成します。
    • getDirectLookupDestinations

      protected abstract SetSE<StringSE> getDirectLookupDestinations(T mapping)
      マッピングに含まれ、パターンではないため、直接ルックアップに適した戻り先。
    • getReturnValueHandlerLogger

      @Nullable protected Log getReturnValueHandlerLogger()
      HandlerMethodReturnValueHandlerComposite に設定するロガーを返します。
      導入:
      5.1
    • getHandlerMethodLogger

      @Nullable protected Log getHandlerMethodLogger()
      InvocableHandlerMethod に設定するロガーを返します。
      導入:
      5.1
    • registerExceptionHandlerAdvice

      protected void registerExceptionHandlerAdvice(MessagingAdviceBean bean, AbstractExceptionHandlerMethodResolver resolver)
      サブクラスはこのメソッドを呼び出して、MessagingAdviceBean キャッシュを生成できます(たとえば、「グローバル」 @MessageExceptionHandler をサポートするため)。
      導入:
      4.2
    • getHandlerMethods

      public MapSE<T,HandlerMethod> getHandlerMethods()
      すべてのハンドラーメソッドとそのマッピングを含むマップを返します。
    • handleMessage

      public void handleMessage(Message<?> message) throws MessagingException
      インターフェースからコピーされた説明: MessageHandler
      指定されたメッセージを処理します。
      次で指定:
      インターフェース MessageHandlerhandleMessage 
      パラメーター:
      message - 処理するメッセージ
      例外:
      MessagingException - ハンドラーがメッセージの処理に失敗した場合
    • getDestination

      @Nullable protected abstract StringSE getDestination(Message<?> message)
    • getLookupDestination

      @Nullable protected StringSE getLookupDestination(@Nullable StringSE destination)
      (受信メッセージの)指定された宛先が構成済み宛先プレフィックスの 1 つと一致するかどうかを確認し、一致する場合は、一致したプレフィックスの後に宛先の残りの部分を返します。

      一致するプレフィックスがない場合は、null を返します。

      宛先プレフィックスがない場合は、宛先をそのまま返します。

    • handleMessageInternal

      protected void handleMessageInternal(Message<?> message, StringSE lookupDestination)
    • getMatchingMapping

      @Nullable protected abstract T getMatchingMapping(T mapping, Message<?> message)
      マッピングが現在のメッセージと一致するかどうかを確認し、現在のリクエストに関連する条件を含む新しいマッピングを返す可能性があります。
      パラメーター:
      mapping - 一致を取得するマッピング
      message - 処理されているメッセージ
      戻り値:
      一致、または一致がない場合は null 
    • handleNoMatch

      protected void handleNoMatch(SetSE<T> ts, StringSE lookupDestination, Message<?> message)
    • getMappingComparator

      protected abstract ComparatorSE<T> getMappingComparator(Message<?> message)
      一致するマッピングをソートするためのコンパレータを返します。返されたコンパレータは、「より良い」一致をより高い順に並べ替えます。
      パラメーター:
      message - 現在のメッセージ
      戻り値:
      コンパレータ、決して null
    • handleMatch

      protected void handleMatch(T mapping, HandlerMethod handlerMethod, StringSE lookupDestination, Message<?> message)
    • processHandlerMethodException

      protected void processHandlerMethodException(HandlerMethod handlerMethod, ExceptionSE exception, Message<?> message)
    • getExceptionHandlerMethod

      @Nullable protected InvocableHandlerMethod getExceptionHandlerMethod(HandlerMethod handlerMethod, ExceptionSE exception)
      指定された例外の @MessageExceptionHandler メソッドを見つけます。デフォルトの実装では、最初に HandlerMethod のクラス階層内のメソッドが検索され、見つからない場合は、構成された MessagingAdviceBean 内で追加の @MessageExceptionHandler メソッドの検索が続けられます (存在する場合)。
      パラメーター:
      handlerMethod - 例外が発生したメソッド
      exception - 発生した例外
      戻り値:
      例外を処理するメソッド、または null
      導入:
      4.2
    • createExceptionHandlerMethodResolverFor

      protected abstract AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodResolverFor(ClassSE<?> beanType)
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString