SpringMvcのHandlerAdapter
1718 ワード
MVCフレームワークのインタフェース、パラメトリックコアのmvcプロセスを許可する
インタフェースは、各プロセッサタイプが要求を処理するために実装される必要があります.このインタフェースにより、DispatcherServiceletは無制限に拡張できます.DispathcerServiceletはこのインタフェースを通じてインストール済みのhandlerにアクセスします.処理タイプ固有のコードが含まれていないことを意味します.
おおよその意味では各タイプのControllerは,特定のHandlerAdapterで処理する必要がある.SpringMVCはHandlerAdapterを提供してくれました
SimpleControllerHandlerAdapterプロセッサはControllerインタフェースを実現する必要がある
、SimpleServeretHandlerAdapterプロセッサにはサーブレットが必要です
HttpRequestHandlerAdapterプロセッサはHttpRequestHandlerインタフェースを実現する必要がある
RequestMappingHandlerAdapterプロセッサには、RequestMapping注釈でマークされたプロセッサであるHandlerMethodタイプが必要です.Spring mvc 3.1がサポートを開始した新しい機能です
AnnotationMethodHandlerAdapterは廃棄されました.
インタフェースは、各プロセッサタイプが要求を処理するために実装される必要があります.このインタフェースにより、DispatcherServiceletは無制限に拡張できます.DispathcerServiceletはこのインタフェースを通じてインストール済みのhandlerにアクセスします.処理タイプ固有のコードが含まれていないことを意味します.
public interface HandlerAdapter {
/**
* handler, Controller 。
*/
boolean supports(Object handler);
/**
* handler
*/
ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;
/**
* Same contract as for HttpServlet's {@code getLastModified} method.
* LastModified , -1.
*/
long getLastModified(HttpServletRequest request, Object handler);
}
おおよその意味では各タイプのControllerは,特定のHandlerAdapterで処理する必要がある.SpringMVCはHandlerAdapterを提供してくれました
SimpleControllerHandlerAdapterプロセッサはControllerインタフェースを実現する必要がある
public boolean supports(Object handler) {
return (handler instanceof Controller);
}
、SimpleServeretHandlerAdapterプロセッサにはサーブレットが必要です
@Override
public boolean supports(Object handler) {
return (handler instanceof Servlet);
}
HttpRequestHandlerAdapterプロセッサはHttpRequestHandlerインタフェースを実現する必要がある
@Override
public boolean supports(Object handler) {
return (handler instanceof HttpRequestHandler);
}
RequestMappingHandlerAdapterプロセッサには、RequestMapping注釈でマークされたプロセッサであるHandlerMethodタイプが必要です.Spring mvc 3.1がサポートを開始した新しい機能です
@Override
public final boolean supports(Object handler) {
return handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler);
}
AnnotationMethodHandlerAdapterは廃棄されました.