クラス RequestMappingHandlerAdapter

実装されたすべてのインターフェース:
AwareBeanFactoryAwareInitializingBeanApplicationContextAwareOrderedServletContextAwareHandlerAdapter

public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter implements BeanFactoryAware, InitializingBean
導入:
3.1
作成者:
Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze
関連事項:
  • フィールドの詳細

  • コンストラクターの詳細

    • RequestMappingHandlerAdapter

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

    • setCustomArgumentResolvers

      public void setCustomArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers)
      カスタム引数型のリゾルバーを提供します。カスタムリゾルバーは、組み込みリゾルバーの後にオーダーされます。引数解決の組み込みサポートをオーバーライドするには、代わりに setArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>) を使用します。
    • getCustomArgumentResolvers

      @Nullable public ListSE<HandlerMethodArgumentResolver> getCustomArgumentResolvers()
      カスタム引数リゾルバー、または null を返します。
    • setArgumentResolvers

      public void setArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers)
      サポートされている引数型の完全なリストを構成して、デフォルトでは構成されないリゾルバーをオーバーライドします。
    • getArgumentResolvers

      @Nullable public ListSE<HandlerMethodArgumentResolver> getArgumentResolvers()
      設定済みの引数リゾルバーを返します。afterPropertiesSet() を介してまだ初期化されていない場合は、null を返します。
    • setInitBinderArgumentResolvers

      public void setInitBinderArgumentResolvers(@Nullable ListSE<HandlerMethodArgumentResolver> argumentResolvers)
      @InitBinder メソッドでサポートされる引数型を構成します。
    • getInitBinderArgumentResolvers

      @Nullable public ListSE<HandlerMethodArgumentResolver> getInitBinderArgumentResolvers()
      @InitBinder メソッドの引数リゾルバーを返します。afterPropertiesSet() を介してまだ初期化されていない場合は、null を返す可能性があります。
    • setCustomReturnValueHandlers

      public void setCustomReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers)
      カスタム戻り値型のハンドラーを提供します。カスタムハンドラーは、組み込みハンドラーの後にオーダーされます。戻り値の処理の組み込みサポートをオーバーライドするには、setReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>) を使用します。
    • getCustomReturnValueHandlers

      @Nullable public ListSE<HandlerMethodReturnValueHandler> getCustomReturnValueHandlers()
      カスタム戻り値ハンドラー、または null を返します。
    • setReturnValueHandlers

      public void setReturnValueHandlers(@Nullable ListSE<HandlerMethodReturnValueHandler> returnValueHandlers)
      サポートされている戻り値の型の完全なリストを構成し、そうでなければデフォルトで構成されるハンドラーをオーバーライドします。
    • getReturnValueHandlers

      @Nullable public ListSE<HandlerMethodReturnValueHandler> getReturnValueHandlers()
      構成済みのハンドラー、または afterPropertiesSet() を介してまだ初期化されていない場合は null を返します。
    • setModelAndViewResolvers

      public void setModelAndViewResolvers(@Nullable ListSE<ModelAndViewResolver> modelAndViewResolvers)
      カスタム ModelAndViewResolvers を提供します。

      注意 : このメソッドは、下位互換性のためにのみ使用できます。ただし、ModelAndViewResolver を HandlerMethodReturnValueHandler に書き換えることをお勧めします。HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter) メソッドを実装できないため、2 つのインターフェース間のアダプターは使用できません。ModelAndViewResolver は、他のすべての戻り値ハンドラーにチャンスが与えられた後、常に最後に呼び出されるように制限されています。

      HandlerMethodReturnValueHandler は、戻り値の型とコントローラーメソッド情報へのより良いアクセスを提供し、他の戻り値ハンドラーと比較して自由にオーダーできます。

    • getModelAndViewResolvers

      @Nullable public ListSE<ModelAndViewResolver> getModelAndViewResolvers()
      設定された ModelAndViewResolvers または null を返します。
    • setContentNegotiationManager

      public void setContentNegotiationManager(ContentNegotiationManager contentNegotiationManager)
      リクエストされたメディア型を判別するために使用する ContentNegotiationManager を設定します。設定されていない場合、デフォルトのコンストラクターが使用されます。
    • setMessageConverters

      public void setMessageConverters(ListSE<HttpMessageConverter<?>> messageConverters)
      引数リゾルバーで使用するコンバーターを提供し、リクエストおよびレスポンスの本文の読み取りおよび / または書き込みをサポートする値ハンドラーを返します。
    • getMessageConverters

      public ListSE<HttpMessageConverter<?>> getMessageConverters()
      構成されたメッセージ本文コンバーターを返します。
    • setRequestBodyAdvice

      public void setRequestBodyAdvice(@Nullable ListSE<RequestBodyAdvice> requestBodyAdvice)
      1 つ以上の RequestBodyAdvice インスタンスを追加して、リクエストが読み取られ、@RequestBody および HttpEntity メソッド引数に変換される前にインターセプトします。
    • setResponseBodyAdvice

      public void setResponseBodyAdvice(@Nullable ListSE<ResponseBodyAdvice<?>> responseBodyAdvice)
      @ResponseBody または ResponseEntity の戻り値がレスポンス本文に書き込まれる前に、1 つ以上の ResponseBodyAdvice インスタンスを追加してレスポンスをインターセプトします。
    • setWebBindingInitializer

      public void setWebBindingInitializer(@Nullable WebBindingInitializer webBindingInitializer)
      WebBindingInitializer に「グローバル」初期化を提供して、すべての DataBinder インスタンスに適用します。
    • getWebBindingInitializer

      @Nullable public WebBindingInitializer getWebBindingInitializer()
      設定された WebBindingInitializer を返すか、存在しない場合は null を返します。
    • setTaskExecutor

      public void setTaskExecutor(AsyncTaskExecutor taskExecutor)
      コントローラーメソッドが CallableSE を返すときに使用するデフォルトの AsyncTaskExecutor を設定します。コントローラーのメソッドは、WebAsyncTask を返すことにより、リクエストごとにこのデフォルトをオーバーライドできます。

      アプリケーションにそのような戻り値の型を持つコントローラーがある場合は、デフォルトで使用されるコントローラーは負荷がかかる運用には適していないため、AsyncTaskExecutor を構成してください。

    • setAsyncRequestTimeout

      public void setAsyncRequestTimeout(long timeout)
      並行処理がタイムアウトするまでの時間をミリ秒単位で指定します。Servlet 3 では、タイムアウトはメインのリクエスト処理スレッドが終了した後に始まり、同時に生成された結果をさらに処理するためにリクエストが再度ディスパッチされると終了します。

      この値が設定されていない場合、基礎となる実装のデフォルトのタイムアウトが使用されます。

      パラメーター:
      timeout - ミリ秒単位のタイムアウト値
    • setCallableInterceptors

      public void setCallableInterceptors(ListSE<CallableProcessingInterceptor> interceptors)
      非同期リクエストで登録するように CallableProcessingInterceptor を構成します。
      パラメーター:
      interceptors - 登録するインターセプター
    • setDeferredResultInterceptors

      public void setDeferredResultInterceptors(ListSE<DeferredResultProcessingInterceptor> interceptors)
      非同期リクエストで登録するように DeferredResultProcessingInterceptor を構成します。
      パラメーター:
      interceptors - 登録するインターセプター
    • setReactiveAdapterRegistry

      public void setReactiveAdapterRegistry(ReactiveAdapterRegistry reactiveAdapterRegistry)
      コントローラーメソッドからの戻り値としてサポートされるように、反応ライブラリ型のレジストリを構成します。
      導入:
      5.0.5
    • getReactiveAdapterRegistry

      public ReactiveAdapterRegistry getReactiveAdapterRegistry()
      アダプターの構成済みのリアクティブ型レジストリを返します。
      導入:
      5.0
    • setIgnoreDefaultModelOnRedirect

      @DeprecatedSE(since="6.0") public void setIgnoreDefaultModelOnRedirect(boolean ignoreDefaultModelOnRedirect)
      使用すべきではありません。
      6.0 の時点で代替なし。削除すると、デフォルトのモデルはリダイレクト時に常に無視されます
      デフォルトでは、"default" モデルのコンテンツは、レンダリングシナリオとリダイレクトシナリオの両方で使用されます。または、コントローラーメソッドで RedirectAttributes 引数を宣言し、それを使用してリダイレクトの属性を提供することもできます。

      このフラグを true に設定すると、RedirectAttributes 引数が宣言されていなくても、"default" モデルがリダイレクトシナリオで使用されないことが保証されます。false に設定すると、コントローラーメソッドが RedirectAttributes 引数を宣言しない場合、"default" モデルがリダイレクトで使用される可能性があります。

      6.0 の時点で、このプロパティはデフォルトで true に設定されています。

      関連事項:
    • setSessionAttributeStore

      public void setSessionAttributeStore(SessionAttributeStore sessionAttributeStore)
      セッション属性を保存する戦略を指定します。デフォルトは DefaultSessionAttributeStore で、モデルと同じ属性名でセッション属性を HttpSession に格納します。
    • setCacheSecondsForSessionAttributeHandlers

      public void setCacheSecondsForSessionAttributeHandlers(int cacheSecondsForSessionAttributeHandlers)
      @SessionAttributes アノテーション付きハンドラーによって生成されたコンテンツを、指定された秒数の間キャッシュします。

      可能な値は次のとおりです。

      • -1: キャッシュ関連のヘッダーの生成なし
      • 0 (デフォルト値): 「キャッシュ制御: no-store」はキャッシュを防ぎます
      • 1 以上: 「キャッシュ制御: max-age = seconds " はコンテンツのキャッシュを要求します。セッション属性を処理する場合はお勧めしません

      すべての一般的なハンドラーに適用される(ただし @SessionAttributes アノテーション付きハンドラーには適用されない) "cacheSeconds" プロパティとは対照的に、この設定は @SessionAttributes ハンドラーにのみ適用されます。

      関連事項:
    • setSynchronizeOnSession

      public void setSynchronizeOnSession(boolean synchronizeOnSession)
      同じクライアントからの並列呼び出しを直列化するために、セッションでコントローラーの実行を同期する必要がある場合に設定します。

      より具体的には、このフラグが "true" の場合、handleRequestInternal メソッドの実行は同期されます。利用可能な最適なセッションミューテックスが同期に使用されます。理想的には、これは HttpSessionMutexListener によって公開されるミューテックスです。

      セッションミューテックスは、セッションのライフタイム全体を通じて同じオブジェクトであることが保証されており、SESSION_MUTEX_ATTRIBUTE 定数で定義されたキーで使用できます。これは、現在のセッションのロックを同期するための安全な参照として機能します。

      多くの場合、HttpSession 参照自体も、同じアクティブな論理セッションに対する常に同じオブジェクト参照になるため、安全なミューテックスです。ただし、これは異なるサーブレットコンテナー間では保証されません。唯一の 100% 安全な方法は、セッションミューテックスです。

      関連事項:
    • setParameterNameDiscoverer

      public void setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer)
      必要に応じてメソッドパラメーター名を解決するために使用する ParameterNameDiscoverer を設定します(デフォルトの属性名など)。

      デフォルトは DefaultParameterNameDiscoverer です。

    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      ConfigurableBeanFactory は、メソッド引数のデフォルト値の式を解決するために必要です。
      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項:
    • getBeanFactory

      @Nullable protected ConfigurableBeanFactory getBeanFactory()
      この Bean インスタンスの所有ファクトリを返します。存在しない場合は null を返します。
    • afterPropertiesSet

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

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

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

      protected boolean supportsInternal(HandlerMethod handlerMethod)
      メソッドの引数と戻り値の型は何らかの方法で処理されるため、常に true を返します。HandlerMethodArgumentResolver で認識されないメソッド引数は、それが単純型の場合はリクエストパラメーターとして解釈され、それ以外の場合はモデル属性として解釈されます。HandlerMethodReturnValueHandler で認識されない戻り値は、モデル属性として解釈されます。
      次で指定:
      クラス AbstractHandlerMethodAdaptersupportsInternal 
      パラメーター:
      handlerMethod - チェックするハンドラーメソッド
      戻り値:
      このアダプターが特定の方法を適応できるかどうか
    • handleInternal

      @Nullable protected ModelAndView handleInternal(HttpServletRequestEE request, HttpServletResponseEE response, HandlerMethod handlerMethod) throws ExceptionSE
      クラスからコピーされた説明: AbstractHandlerMethodAdapter
      指定されたハンドラーメソッドを使用して、リクエストを処理します。
      次で指定:
      クラス AbstractHandlerMethodAdapterhandleInternal 
      パラメーター:
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      handlerMethod - 使用するハンドラーメソッド。このオブジェクトは以前に AbstractHandlerMethodAdapter.supportsInternal(HandlerMethod) このインターフェースに渡されている必要があり、このインターフェースは true を返したはずです。
      戻り値:
      ビューの名前と必要なモデルデータを含む ModelAndView オブジェクト、またはリクエストが直接処理された場合は null 
      例外:
      ExceptionSE - エラーの場合
    • getLastModifiedInternal

      protected long getLastModifiedInternal(HttpServletRequestEE request, HandlerMethod handlerMethod)
      この実装は常に -1 を返します。@RequestMapping メソッドは、lastModified 値を計算し、WebRequest.checkNotModified(long) を呼び出し、その呼び出しの結果が true の場合は null を返すことができます。
      次で指定:
      クラス AbstractHandlerMethodAdaptergetLastModifiedInternal 
      パラメーター:
      request - 現在の HTTP リクエスト
      handlerMethod - 使用するハンドラーメソッド
      戻り値:
      指定されたハンドラーの lastModified 値
    • invokeHandlerMethod

      @Nullable protected ModelAndView invokeHandlerMethod(HttpServletRequestEE request, HttpServletResponseEE response, HandlerMethod handlerMethod) throws ExceptionSE
      ビューリゾルバーが必要な場合は、ModelAndView を準備する RequestMapping ハンドラーメソッドを呼び出します。
      例外:
      ExceptionSE
      導入:
      4.2
      関連事項:
    • createInvocableHandlerMethod

      protected ServletInvocableHandlerMethod createInvocableHandlerMethod(HandlerMethod handlerMethod)
      指定された HandlerMethod 定義から ServletInvocableHandlerMethod を作成します。
      パラメーター:
      handlerMethod - HandlerMethod 定義
      戻り値:
      対応する ServletInvocableHandlerMethod (またはそのカスタムサブクラス)
      導入:
      4.2
    • createDataBinderFactory

      protected InitBinderDataBinderFactory createDataBinderFactory(ListSE<InvocableHandlerMethod> binderMethods) throws ExceptionSE
      新しい InitBinderDataBinderFactory インスタンスを作成するためのテンプレートメソッド。

      デフォルトの実装では、ServletRequestDataBinderFactory を作成します。これは、カスタム ServletRequestDataBinder サブクラスでオーバーライドできます。

      パラメーター:
      binderMethods - @InitBinder メソッド
      戻り値:
      使用する InitBinderDataBinderFactory インスタンス
      例外:
      ExceptionSE - 無効な状態または引数の場合