T
- HandlerMethod
を受信メッセージにマッピングする情報を含むオブジェクトの型 public abstract class AbstractMethodMessageHandler<T> extends ObjectSE implements MessageHandler, ApplicationContextAware, InitializingBean
メッセージ処理中に発生した例外を処理するための例外処理メソッドの検出と呼び出しもサポートしています。
コンストラクターと説明 |
---|
AbstractMethodMessageHandler() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() |
protected abstract AbstractExceptionHandlerMethodResolver | createExceptionHandlerMethodResolverFor(ClassSE<?> beanType) |
protected HandlerMethod | createHandlerMethod(ObjectSE handler, MethodSE method) ハンドラーインスタンスまたは文字列ベースの Bean 名のいずれかであるオブジェクトハンドラーから HandlerMethod インスタンスを作成します。 |
protected void | detectHandlerMethods(ObjectSE handler) 指定されたハンドラーにメッセージを処理できるメソッドがあるかどうかを検出し、ある場合は抽出されたマッピング情報に登録します。 |
ApplicationContext | getApplicationContext() |
ListSE<HandlerMethodArgumentResolver> | getArgumentResolvers() 引数リゾルバーの完全なリストを返します。 |
ListSE<HandlerMethodArgumentResolver> | getCustomArgumentResolvers() 構成されたカスタム引数リゾルバーがあれば、それを返します。 |
ListSE<HandlerMethodReturnValueHandler> | getCustomReturnValueHandlers() 構成されたカスタム戻り値ハンドラーを返します(ある場合)。 |
protected abstract StringSE | getDestination(Message<?> message) |
CollectionSE<StringSE> | getDestinationPrefixes() 設定されている宛先プレフィックスがある場合は、それを返します。 |
protected abstract SetSE<StringSE> | getDirectLookupDestinations(T mapping) マッピングに含まれ、パターンではないため、直接ルックアップに適した戻り先。 |
protected InvocableHandlerMethod | getExceptionHandlerMethod(HandlerMethod handlerMethod, ExceptionSE exception) 指定された例外の @MessageExceptionHandler メソッドを見つけます。 |
protected Log | getHandlerMethodLogger() InvocableHandlerMethod に設定するロガーを返します。 |
MapSE<T, HandlerMethod> | getHandlerMethods() すべてのハンドラーメソッドとそのマッピングを含むマップを返します。 |
protected StringSE | getLookupDestination(StringSE destination) (受信メッセージの)指定された宛先が構成済み宛先プレフィックスの 1 つと一致するかどうかを確認し、一致する場合は、一致したプレフィックスの後に宛先の残りの部分を返します。 |
protected abstract ComparatorSE<T> | getMappingComparator(Message<?> message) 一致するマッピングをソートするためのコンパレーターを返します。 |
protected abstract T | getMappingForMethod(MethodSE method, ClassSE<?> handlerType) ハンドラーメソッドのマッピングを提供します。 |
protected abstract T | getMatchingMapping(T mapping, Message<?> message) マッピングが現在のメッセージと一致するかどうかを確認し、現在のリクエストに関連する条件を含む新しいマッピングを返す可能性があります。 |
protected Log | getReturnValueHandlerLogger() HandlerMethodReturnValueHandlerComposite に設定するロガーを返します。 |
ListSE<HandlerMethodReturnValueHandler> | getReturnValueHandlers() 戻り値ハンドラーの完全なリストを返します。 |
protected void | handleMatch(T mapping, HandlerMethod handlerMethod, StringSE lookupDestination, Message<?> message) |
void | handleMessage(Message<?> message) 指定されたメッセージを処理します。 |
protected void | handleMessageInternal(Message<?> message, StringSE lookupDestination) |
protected void | handleNoMatch(SetSE<T> ts, StringSE lookupDestination, Message<?> message) |
protected abstract ListSE<? extends HandlerMethodArgumentResolver> | initArgumentResolvers() 使用する引数リゾルバーのリストを返します。 |
protected abstract ListSE<? extends HandlerMethodReturnValueHandler> | initReturnValueHandlers() 使用する戻り値ハンドラーのリストを返します。 |
protected abstract boolean | isHandler(ClassSE<?> beanType) 指定された Bean 型をメッセージング処理メソッドに対してイントロスペクトする必要があるかどうか。 |
protected void | processHandlerMethodException(HandlerMethod handlerMethod, ExceptionSE exception, Message<?> message) |
protected void | registerExceptionHandlerAdvice(MessagingAdviceBean bean, AbstractExceptionHandlerMethodResolver resolver) サブクラスはこのメソッドを呼び出して、MessagingAdviceBean キャッシュにデータを入力できます(例: |
protected void | registerHandlerMethod(ObjectSE handler, MethodSE method, T mapping) ハンドラーメソッドとその一意のマッピングを登録します。 |
void | setApplicationContext(ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。 |
void | setArgumentResolvers(ListSE<HandlerMethodArgumentResolver> argumentResolvers) サポートされている引数型の完全なリストを構成して、デフォルトで構成されている型を効果的にオーバーライドします。 |
void | setCustomArgumentResolvers(ListSE<HandlerMethodArgumentResolver> customArgumentResolvers) サポートされる引数型のリゾルバーの後に使用されるカスタム HandlerMethodArgumentResolver のリストを設定します。 |
void | setCustomReturnValueHandlers(ListSE<HandlerMethodReturnValueHandler> customReturnValueHandlers) 既知の型の戻り値ハンドラーの後に使用されるカスタム HandlerMethodReturnValueHandler のリストを設定します。 |
void | setDestinationPrefixes(CollectionSE<StringSE> prefixes) このプロパティが設定されている場合、設定された接頭辞のいずれかに一致する宛先へのメッセージのみが処理に適しています。 |
void | setReturnValueHandlers(ListSE<HandlerMethodReturnValueHandler> returnValueHandlers) サポートされている戻り値型の完全なリストを構成し、デフォルトで構成されているものを効果的にオーバーライドします。 |
StringSE | toString() |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
protected final Log logger
public void setDestinationPrefixes(@Nullable CollectionSE<StringSE> prefixes)
デフォルトでは、プレフィックスは設定されていません。この場合、すべてのメッセージが処理に適格です。
public CollectionSE<StringSE> getDestinationPrefixes()
public void setCustomArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> customArgumentResolvers)
HandlerMethodArgumentResolver
のリストを設定します。public ListSE<HandlerMethodArgumentResolver> getCustomArgumentResolvers()
public void setCustomReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> customReturnValueHandlers)
HandlerMethodReturnValueHandler
のリストを設定します。public ListSE<HandlerMethodReturnValueHandler> getCustomReturnValueHandlers()
public void setArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers)
setCustomArgumentResolvers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver>)
を使用するだけで十分です。public ListSE<HandlerMethodArgumentResolver> getArgumentResolvers()
public void setReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers)
setCustomReturnValueHandlers(java.util.List<org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler>)
を使用するだけで十分です。public ListSE<HandlerMethodReturnValueHandler> getReturnValueHandlers()
public void setApplicationContext(@Nullable ApplicationContext applicationContext)
ApplicationContextAware
通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
、ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
および MessageSourceAware
の後に呼び出されます(該当する場合)。
ApplicationContextAware
の setApplicationContext
applicationContext
- このオブジェクトによって使用される ApplicationContext オブジェクト BeanInitializationException
@Nullable public ApplicationContext getApplicationContext()
public void afterPropertiesSet()
InitializingBean
BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含 BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean
の afterPropertiesSet
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>)
を介して構成されたカスタム引数型も考慮する必要があります。
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>)
を介して構成されたカスタム戻り値型も考慮する必要があります。
protected abstract boolean isHandler(ClassSE<?> beanType)
protected final void detectHandlerMethods(ObjectSE handler)
handler
- チェックするハンドラー、Spring Bean 名のインスタンス @Nullable protected abstract T getMappingForMethod(MethodSE method, ClassSE<?> handlerType)
method
- マッピングを提供する方法 handlerType
- ハンドラー型、場合によってはメソッドの宣言クラスのサブ型 null
protected void registerHandlerMethod(ObjectSE handler, MethodSE method, T mapping)
handler
- ハンドラーまたはハンドラーインスタンスの Bean 名 method
- 登録する方法 mapping
- ハンドラーメソッドに関連付けられたマッピング条件 IllegalStateExceptionSE
- 別のメソッドが同じマッピングですでに登録されている場合 protected HandlerMethod createHandlerMethod(ObjectSE handler, MethodSE method)
protected abstract SetSE<StringSE> getDirectLookupDestinations(T mapping)
@Nullable protected Log getReturnValueHandlerLogger()
HandlerMethodReturnValueHandlerComposite
に設定するロガーを返します。@Nullable protected Log getHandlerMethodLogger()
InvocableHandlerMethod
に設定するロガーを返します。protected void registerExceptionHandlerAdvice(MessagingAdviceBean bean, AbstractExceptionHandlerMethodResolver resolver)
@MessageExceptionHandler
をサポートするため)。public MapSE<T,HandlerMethod> getHandlerMethods()
public void handleMessage(Message<?> message) throws MessagingException
MessageHandler
MessageHandler
の handleMessage
message
- 処理するメッセージ MessagingException
- ハンドラーがメッセージの処理に失敗した場合 @Nullable protected StringSE getLookupDestination(@Nullable StringSE destination)
一致するプレフィックスがない場合は、null
を返します。
宛先プレフィックスがない場合は、宛先をそのまま返します。
protected void handleMessageInternal(Message<?> message, StringSE lookupDestination)
@Nullable protected abstract T getMatchingMapping(T mapping, Message<?> message)
mapping
- 一致を取得するマッピング message
- 処理されているメッセージ null
protected void handleNoMatch(SetSE<T> ts, StringSE lookupDestination, Message<?> message)
protected abstract ComparatorSE<T> getMappingComparator(Message<?> message)
message
- 現在のメッセージ null
protected void handleMatch(T mapping, HandlerMethod handlerMethod, StringSE lookupDestination, Message<?> message)
protected void processHandlerMethodException(HandlerMethod handlerMethod, ExceptionSE exception, Message<?> message)
@Nullable protected InvocableHandlerMethod getExceptionHandlerMethod(HandlerMethod handlerMethod, ExceptionSE exception)
@MessageExceptionHandler
メソッドを見つけます。デフォルトの実装では、最初に HandlerMethod のクラス階層内のメソッドが検索され、見つからない場合は、構成された MessagingAdviceBean 内で追加の @MessageExceptionHandler
メソッドの検索が続けられます (存在する場合)。handlerMethod
- 例外が発生したメソッド exception
- 発生した例外 null
protected abstract AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodResolverFor(ClassSE<?> beanType)
public StringSE toString()
ObjectSE
の toStringSE