How DefaultAnnotationHandlerMapping funciona

Estoy confundido acerca de la forma en que funciona DefaultAnnotationHandlerMapping.

En mi web.xml tengo

 <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/somePath/someWork</url-pattern>

    <url-pattern>/users</url-pattern>
    <url-pattern>/user/*</url-pattern>
  </servlet-mapping>  

Tengo el controlador como este,

   @RequestMapping(value="/user/adduser", method={RequestMethod.POST})
    public void addAdmin(@ModelAttribute("myData") myData data) {

        System.out.println("We reached adduser controller");

    }

Y en el archivo jsp tengo

<form:form id="adduser" method="post" action="/user/adduser" commandName="myData">

Esto no funciona. Obtengo el error de que no se encontró ninguna asignación de controlador para "/ adduser" y 404 para la página "/ user / adduser"

Pero en el archivo .xml si menciono

  <url-pattern>/user/adduser</url-pattern>

funciona, o si hago el controlador como,

  @RequestMapping(value="/adduser", method={RequestMethod.POST})

También funciona. Al enviar la página, llega al controlador correcto.

Ahora estoy confundido sobre la forma en que funciona @ReuqestMapping. Cuando llega una solicitud como "/ user / adduser" desde donde comenzará a buscar la clase y el método correctos?

Respuestas a la pregunta(1)

Su respuesta a la pregunta