クラス IntegrationRequestMappingHandlerMapping

実装されたすべてのインターフェース:
EventListenerSEAwareBeanNameAwareInitializingBeanApplicationContextAwareApplicationListener<ContextRefreshedEvent>EmbeddedValueResolverAwareOrderedServletContextAwareMatchableHandlerMappingHandlerMapping

public final class IntegrationRequestMappingHandlerMapping extends RequestMappingHandlerMapping implements ApplicationListener<ContextRefreshedEvent>
<inbound-channel-adapter/> および <inbound-gateway/> 要素の Spring Integration HTTP 構成から HttpRequestHandlingEndpointSupportRequestMappingInfo を検出および登録する HandlerMapping 実装。

このクラスは、<inbound-channel-adapter/> および <inbound-gateway/> 要素の解析フェーズ中に、まだ何も登録されていない場合、アプリケーションコンテキストで Bean として自動的に構成されます。ただし、RequestMappingHandlerMapping の適切な構成を使用して、通常の Bean として構成できます。'id' HttpContextUtils.HANDLER_MAPPING_BEAN_NAME を使用して、アプリケーションコンテキスト内に同様の Bean を 1 つだけ持つことをお勧めします。

ほとんどの場合、Spring MVC は org.springframework.stereotype.Controller および RequestMapping を介してリクエストマッピングを構成することを提案します。これが、Spring MVC のハンドラーマッピングインフラストラクチャが HandlerMethod に依存している理由です。同じ org.springframework.stereotype.Controller ユーザークラスの異なるメソッドが独自の RequestMapping を持つ場合があるためです。一方、すべての Spring Integration HTTP 受信 エンドポイントは、同じ BaseHttpInboundEndpoint クラスに基づいて構成されており、Spring MVC に HandlerMethod がない単一の RequestMappingInfo 構成はありません。IntegrationRequestMappingHandlerMapping は、メソッドレベルのアノテーションとコンポーネントレベル (Spring Integration XML など) の構成の間の HandlerMapping 妥協の実装です。

このクラスは Spring MVC RequestMappingHandlerMapping クラスを継承し、そのロジックのほとんど、特に RequestMappingInfoHandlerMapping.handleNoMatch(java.util.Set, String, HttpServletRequest) を継承します。これは、何らかの理由でマッピングが一致しない場合に HTTP レスポンスに対して特定の 4xx エラーをスローし、アプリケーションコンテキスト内の残りのマッピングハンドラーへの呼び出しを防ぎます。このため、Spring Integration と Spring MVC の両方のリクエストマッピングに同じパスを設定することはサポートされていません(たとえば、一方に `POST`、もう一方に `GET`)。MVC マッピングは見つかりません。

導入:
3.0
作成者:
Artem Bilan, Gary Russell
関連事項: