Spring 3.0 MultipartFile subir

Estoy convirtiendo la aplicación web de Java a Spring Framework y aprecio algunos consejos sobre los problemas a los que me enfrento con la carga del archivo. El código original fue escrito usando org.apache.commons.fileupload.

¿El Spring MultipartFile envuelve org.apache.commons.fileupload o puedo excluir esta dependencia de mi archivo POM?

He visto el siguiente ejemplo:

<code>@RequestMapping(value = "/form", method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("file") MultipartFile file) {

    if (!file.isEmpty()) {
        byte[] bytes = file.getBytes();
        // store the bytes somewhere
       return "redirect:uploadSuccess";
    } else {
        return "redirect:uploadFailure";
    }
}
</code>

Originalmente traté de seguir este ejemplo, pero siempre recibía un error porque no podía encontrar este parámetro de solicitud. Entonces, en mi controlador he hecho lo siguiente:

<code>@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody
ExtResponse upload(HttpServletRequest request, HttpServletResponse response)
{
   // Create a JSON response object.
   ExtResponse extResponse = new ExtResponse();
   try {
       if (request instanceof MultipartHttpServletRequest)
       {
           MultipartHttpServletRequest multipartRequest =
                        (MultipartHttpServletRequest) request;
           MultipartFile file = multipartRequest.getFiles("file");
           InputStream input = file.getInputStream();
           // do the input processing
           extResponse.setSuccess(true);
        }
    } catch (Exception e) {
        extResponse.setSuccess(false);
        extResponse.setMessage(e.getMessage());
    }
    return extResponse;
}
</code>

y está funcionando. Si alguien me puede decir por qué @RequestParam no me funcionó, se lo agradeceré. Por cierto tengo

<code>    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="2097152"/>
    </bean>
</code>

en mi archivo de contexto servlet.

Respuestas a la pregunta(6)

Su respuesta a la pregunta