SpringMvcのHandlerAdapter


MVCフレームワークのインタフェース、パラメトリックコアのmvcプロセスを許可する
インタフェースは、各プロセッサタイプが要求を処理するために実装される必要があります.このインタフェースにより、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は廃棄されました.