RequestMappingHandlerAdapter を推奨 @DeprecatedSE public class AnnotationMethodHandlerAdapter extends WebContentGenerator implements HandlerAdapter, Ordered, BeanFactoryAware
RequestMapping アノテーションを通じて表現される HTTP パス、HTTP メソッド、リクエストパラメーターに基づいてハンドラーメソッドをマップする HandlerAdapter インターフェースの実装。RequestParam アノテーションによるリクエストパラメーターバインディングをサポートします。また、モデル属性値をビューに公開するための ModelAttribute アノテーション、バインダー初期化メソッド用の InitBinder、および特定の属性の自動セッション管理用の SessionAttributes もサポートします。
このアダプターは、さまざまな Bean プロパティを通じてカスタマイズできます。一般的な使用例は、カスタム WebBindingInitializer を通じて共有バインダー初期化ロジックを適用することです。
setPathMatcher(org.springframework.util.PathMatcher), setMethodNameResolver(org.springframework.web.servlet.mvc.multiaction.MethodNameResolver), setWebBindingInitializer(org.springframework.web.bind.support.WebBindingInitializer), setSessionAttributeStore(org.springframework.web.bind.support.SessionAttributeStore)| 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | PAGE_NOT_FOUND_LOG_CATEGORY 使用すべきではありません。 リクエストに対してマップされたハンドラーが見つからない場合に使用するログカテゴリ。 |
protected static Log | pageNotFoundLogger 使用すべきではありません。 リクエストに対してマップされたハンドラーが見つからない場合に使用する追加のロガー。 |
HEADER_CACHE_CONTROL, METHOD_GET, METHOD_HEAD, METHOD_POSTloggerHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| コンストラクターと説明 |
|---|
AnnotationMethodHandlerAdapter() 使用すべきではありません。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected ServletRequestDataBinder | createBinder(HttpServletRequestEE request, ObjectSE target, StringSE objectName) 使用すべきではありません。 新しい ServletRequestDataBinder インスタンスを作成するためのテンプレートメソッド。 |
protected HttpInputMessage | createHttpInputMessage(HttpServletRequestEE servletRequest) 使用すべきではありません。 新しい HttpInputMessage インスタンスを作成するためのテンプレートメソッド。 |
protected HttpOutputMessage | createHttpOutputMessage(HttpServletResponseEE servletResponse) 使用すべきではありません。 新しい HttpOutputMessage インスタンスを作成するためのテンプレートメソッド。 |
long | getLastModified(HttpServletRequestEE request, ObjectSE handler) 使用すべきではありません。 アノテーション付きコントローラーには多数のメソッドがあり、それぞれが個別の lastModified 計算を必要とするため、このメソッドは常に -1 を返します。 |
HttpMessageConverter<?>[] | getMessageConverters() 使用すべきではありません。 このアダプターに設定されているメッセージ本文コンバーターを返します。 |
int | getOrder() 使用すべきではありません。 このオブジェクトの順序値を取得します。 |
ModelAndView | handle(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler) 使用すべきではありません。 指定されたハンドラーを使用して、このリクエストを処理します。 |
protected ModelAndView | invokeHandlerMethod(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler) 使用すべきではありません。 |
void | setAlwaysUseFullPath(boolean alwaysUseFullPath) 使用すべきではありません。 URL 検索で常に現在のサーブレットコンテキスト内のフルパスを使用するかどうかを設定します。 |
void | setBeanFactory(BeanFactory beanFactory) 使用すべきではありません。 所有ファクトリを Bean インスタンスに提供するコールバック。 |
void | setCacheSecondsForSessionAttributeHandlers(int cacheSecondsForSessionAttributeHandlers) 使用すべきではありません。 @SessionAttributes アノテーション付きハンドラーによって生成されたコンテンツを、指定された秒数の間キャッシュします。 |
void | setCustomArgumentResolver(WebArgumentResolver argumentResolver) 使用すべきではありません。 特殊なメソッドパラメーター型に使用するカスタム WebArgumentResolvers を設定します。 |
void | setCustomArgumentResolvers(WebArgumentResolver... argumentResolvers) 使用すべきではありません。 特殊なメソッドパラメーター型に使用する 1 つ以上のカスタム WebArgumentResolvers を設定します。 |
void | setCustomModelAndViewResolver(ModelAndViewResolver customModelAndViewResolver) 使用すべきではありません。 特殊なメソッドの戻り値の型に使用するカスタム ModelAndViewResolvers を設定します。 |
void | setCustomModelAndViewResolvers(ModelAndViewResolver... customModelAndViewResolvers) 使用すべきではありません。 特殊なメソッドの戻り値の型に使用する 1 つ以上のカスタム ModelAndViewResolvers を設定します。 |
void | setMessageConverters(HttpMessageConverter<?>[] messageConverters) 使用すべきではありません。 使用するメッセージ本文コンバーターを設定します。 |
void | setMethodNameResolver(MethodNameResolver methodNameResolver) 使用すべきではありません。 デフォルトのハンドラーメソッド (空の @RequestMapping アノテーションを持つ) を解決するために使用する MethodNameResolver を設定します。 |
void | setOrder(int order) 使用すべきではありません。 この HandlerAdapter Bean の順序値を指定します。 |
void | setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer) 使用すべきではありません。 必要に応じて、メソッドパラメーター名の解決に使用する ParameterNameDiscoverer を設定します(例: |
void | setPathMatcher(PathMatcher pathMatcher) 使用すべきではありません。 登録された URL パターンに対する URL パスのマッチングに使用する PathMatcher 実装を設定します。 |
void | setSessionAttributeStore(SessionAttributeStore sessionAttributeStore) 使用すべきではありません。 セッション属性を保存する戦略を指定します。 |
void | setSynchronizeOnSession(boolean synchronizeOnSession) 使用すべきではありません。 同じクライアントからの並列呼び出しを直列化するために、セッションでコントローラーの実行を同期する必要がある場合に設定します。 |
void | setUrlDecode(boolean urlDecode) 使用すべきではありません。 コンテキストパスとリクエスト URI を URL デコードするかどうかを設定します。 |
void | setUrlPathHelper(UrlPathHelper urlPathHelper) 使用すべきではありません。 ルックアップパスの解決に使用する UrlPathHelper を設定します。 |
void | setWebBindingInitializer(WebBindingInitializer webBindingInitializer) 使用すべきではありません。 このコントローラーが使用するすべての DataBinder に事前構成された構成を適用する WebBindingInitializer を指定します。 |
boolean | supports(ObjectSE handler) 使用すべきではありません。 ハンドラーインスタンスを指定して、この HandlerAdapter がそれをサポートできるかどうかを返します。 |
applyCacheControl, applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, checkRequest, getAllowHeader, getCacheControl, getCacheSeconds, getSupportedMethods, getVaryByRequestHeaders, isAlwaysMustRevalidate, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, prepareResponse, preventCaching, setAlwaysMustRevalidate, setCacheControl, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseCacheControlNoStore, setUseExpiresHeader, setVaryByRequestHeadersgetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextgetApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContextcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic static final StringSE PAGE_NOT_FOUND_LOG_CATEGORY
pageNotFoundLogger, 定数フィールド値 protected static final Log pageNotFoundLogger
public void setAlwaysUseFullPath(boolean alwaysUseFullPath)
デフォルトは「false」。
public void setUrlDecode(boolean urlDecode)
サーブレット仕様(ISO-8859-1)に従って、リクエストエンコーディングまたはデフォルトエンコーディングのいずれかを使用します。
public void setUrlPathHelper(UrlPathHelper urlPathHelper)
これを使用して、デフォルトの UrlPathHelper をカスタムサブクラスでオーバーライドするか、複数の HandlerMappings および HandlerAdapters で共通の UrlPathHelper 設定を共有します。
public void setPathMatcher(PathMatcher pathMatcher)
デフォルトは AntPathMatcher です。
public void setMethodNameResolver(MethodNameResolver methodNameResolver)
@RequestMapping アノテーションを持つ) を解決するために使用する MethodNameResolver を設定します。ハンドラーメソッドがアノテーションメタデータを通じて一意に解決できない場合にのみ有効になります。
public void setWebBindingInitializer(WebBindingInitializer webBindingInitializer)
public void setSessionAttributeStore(SessionAttributeStore sessionAttributeStore)
デフォルトは DefaultSessionAttributeStore で、モデルと同じ属性名を使用して、セッション属性を HttpSession に保存します。
public void setCacheSecondsForSessionAttributeHandlers(int cacheSecondsForSessionAttributeHandlers)
@SessionAttributes アノテーション付きハンドラーによって生成されたコンテンツを指定された秒数キャッシュします。デフォルトは 0 で、キャッシュは完全に防止されます。 すべての一般的なハンドラーに適用される (ただし、@SessionAttributes アノテーション付きハンドラーには適用されない) "cacheSeconds" プロパティとは対照的に、この設定は @SessionAttributes アノテーション付きハンドラーにのみ適用されます。
public void setSynchronizeOnSession(boolean synchronizeOnSession)
より具体的には、このフラグが "true" の場合、handleRequestInternal メソッドの実行は同期されます。利用可能な最適なセッションミューテックスが同期に使用されます。理想的には、これは HttpSessionMutexListener によって公開されるミューテックスです。
セッションミューテックスは、セッションのライフタイム全体を通じて同じオブジェクトであることが保証されており、SESSION_MUTEX_ATTRIBUTE 定数で定義されたキーで使用できます。これは、現在のセッションのロックを同期するための安全な参照として機能します。
多くの場合、HttpSession 参照自体も、同じアクティブな論理セッションに対する常に同じオブジェクト参照になるため、安全なミューテックスです。ただし、これは異なるサーブレットコンテナー間では保証されません。唯一の 100% 安全な方法は、セッションミューテックスです。
public void setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer)
デフォルトは DefaultParameterNameDiscoverer です。
public void setCustomArgumentResolver(WebArgumentResolver argumentResolver)
このようなカスタム WebArgumentResolver が最初に起動し、標準の引数処理が開始される前に引数値を解決する機会が与えられます。
public void setCustomArgumentResolvers(WebArgumentResolver... argumentResolvers)
このようなカスタム WebArgumentResolver は最初に起動され、標準の引数処理が開始される前に引数値を解決する機会が与えられます。
public void setCustomModelAndViewResolver(ModelAndViewResolver customModelAndViewResolver)
このようなカスタム ModelAndViewResolver が最初に起動し、標準の ModelAndView 処理が開始される前に戻り値を解決する機会が与えられます。
public void setCustomModelAndViewResolvers(ModelAndViewResolver... customModelAndViewResolvers)
このようなカスタム ModelAndViewResolver は最初に起動され、標準の ModelAndView 処理が開始される前に、戻り値を解決する機会が与えられます。
public void setMessageConverters(HttpMessageConverter<?>[] messageConverters)
これらのコンバーターは、HTTP リクエストとレスポンスの変換に使用されます。
public HttpMessageConverter<?>[] getMessageConverters()
public void setOrder(int order)
デフォルト値は Integer.MAX_VALUE です。つまり、順序付けされていません。
Ordered.getOrder()public int getOrder()
Ordered 値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup の値に多少似ています)。
同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
Ordered の getOrder Ordered.HIGHEST_PRECEDENCE, Ordered.LOWEST_PRECEDENCEpublic void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationExceptionpublic boolean supports(ObjectSE handler)
HandlerAdapterHandlerAdapter がそれをサポートできるかどうかを返します。典型的な HandlerAdapters は、ハンドラー型に基づいて決定を行います。HandlerAdapters は通常、それぞれ 1 つのハンドラー型のみをサポートします。典型的な実装:
return (handler instanceof MyHandler);
HandlerAdapter の supports handler - チェックするハンドラーオブジェクト public ModelAndView handle(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler) throws ExceptionSE
HandlerAdapterHandlerAdapter の handle request - 現在の HTTP リクエスト response - 現在の HTTP レスポンス handler - 使用するハンドラー。このオブジェクトは、このインターフェースの supports メソッドに事前に渡されている必要があり、true を返している必要があります。null ExceptionSE - エラーの場合 protected ModelAndView invokeHandlerMethod(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler) throws ExceptionSE
ExceptionSEpublic long getLastModified(HttpServletRequestEE request, ObjectSE handler)
RequestMapping アノテーション付きメソッドは lastModified 値を計算し、WebRequest.checkNotModified(long) を呼び出してそれをチェックし、true が返された場合は null を返します。HandlerAdapter の getLastModified request - 現在の HTTP リクエスト handler - 使用するハンドラー WebRequest.checkNotModified(long)protected ServletRequestDataBinder createBinder(HttpServletRequestEE request, ObjectSE target, StringSE objectName) throws ExceptionSE
デフォルトの実装では、標準の ServletRequestDataBinder が作成されます。これは、カスタム ServletRequestDataBinder サブクラス用にオーバーライドできます。
request - 現在の HTTP リクエスト target - バインドするターゲットオブジェクト (または、バインダーが単なるパラメーター値の変換に使用される場合は null )objectName - 対象天体の objectNameExceptionSE - 無効な状態または引数の場合 ServletRequestDataBinder.bind(javax.servlet.ServletRequest), DataBinder.convertIfNecessary(Object, Class, org.springframework.core.MethodParameter)protected HttpInputMessage createHttpInputMessage(HttpServletRequestEE servletRequest) throws ExceptionSE
デフォルトの実装では標準の ServletServerHttpRequest が作成されます。これはカスタム HttpInputMessage 実装で上書きできます
servletRequest - 現在の HTTP リクエスト ExceptionSE - エラーの場合 protected HttpOutputMessage createHttpOutputMessage(HttpServletResponseEE servletResponse) throws ExceptionSE
デフォルトの実装では標準の ServletServerHttpResponse が作成されます。これはカスタム HttpOutputMessage 実装で上書きできます
servletResponse - 現在の HTTP レスポンス ExceptionSE - エラーの場合