Interface that must be implemented for each handler type to handle a request.
This interface is used to allow the DispatcherServlet to be indefinitely
extensible. The DispatcherServlet accesses all installed handlers through this
interface, meaning that it does not contain code specific to any handler type.

Note that a handler can be of type Object. This is to enable handlers from
other frameworks to be integrated with this framework without custom coding.

This interface is not intended for application developers. It is available
to handlers who want to develop their own web workflow.

Note: Implementations can implement the Ordered interface to be able to
specify a sorting order and thus a priority for getting applied by
DispatcherServlet. Non-Ordered instances get treated as lowest priority.

supports

Given a handler instance, return whether or not this HandlerAdapter can
support it. Typical HandlerAdapters will base the decision on the handler
type. HandlerAdapters will usually only support one handler type each.