En Section 15.3.2.3 Supported handler method arguments and return types de la documentación de Spring 3.0, dice que se puede especificar un java.io.OutputStream o java.io.Writer como un parámetro de un método anotado con @RequestMapping "para generar el contenido de la respuesta. OutputStream/Writer como expuesto por la API de Servlet ". ¿Es la responsabilidad del método cerrar el escritor antes de que finalice o debería permanecer abierto y algún otro proceso de primavera lo cerrará?¿Debo cerrar el parámetro Writer para mi controlador Spring 3?
Respuesta
Debería dejarlo solo. Como regla general, si su código no lo abrió, tampoco debería cerrarlo.
En este caso, el contenedor de servlets (no Spring) es responsable de enjuagar y cerrar todas las transmisiones.
Usted podría hágalo usted mismo, dudo que haría ningún daño, pero no hay necesidad de hacerlo.
Ok, no debería cerrar el flujo provisto por la primavera, pero ¿y si uso un tubo? , es decir, CSVWriter writer = new CSVWriter (springWriter); writer.writeLine ("blabla"); Si no cierro el escritor (o al menos no lo lavo), puedo perder cualquier trabajo, ya que se realiza en algún tipo de memoria intermedia. –
skaffman es correcto, no tiene que cerrarlo, y de hecho probablemente no debería, pero sigue siendo una buena idea descargarlo, especialmente en una cláusula 'finally' si se trata de código eso arroja excepciones, es decir, exporta desde una base de datos.
- 1. Spring 3 MVC que accede a HttpRequest desde el controlador
- 2. Usando jQuery para publicar objeto JSON a Spring 3 controlador
- 3. ¿Debo cerrar el servlet outputstream?
- 4. ¿Debo cerrar() cada EntityManager?
- 5. Problemas de implementación del controlador de excepción de Spring 3
- 6. ¿Con qué frecuencia debo abrir/cerrar mi conexión de Booksleeve?
- 7. Spring 3 - Comprobación de un controlador de @Autowired servlet Contexto
- 8. ¿Debo cerrar FileInputStream?
- 9. ¿Debo cerrar InputStream después de cerrar el Reader
- 10. Writer o OutputStream?
- 11. ¿Debo cerrar manualmente un ifstream?
- 12. ¿Debo cerrar un std :: fstream?
- 13. ¿Debo eliminar/cerrar XDocument.Load (cadena)?
- 14. parámetro de envío desde el controlador para ver
- 15. ¿Qué controlador mongo para nodo debo usar?
- 16. TestNG y Spring 3
- 17. Configuración de Spring 3 ThreadFactory para ThreadPoolTaskExecutor
- 18. ¿Cómo paso esta matriz js a mi controlador MVC 3?
- 19. Spring 3 - Crear ExceptionHandler para NoSuchRequestHandlingMethodException
- 20. Spring 3 MVC Nesting RequestMapping
- 21. iOS XML writer class
- 22. ¿Cómo funciona el parámetro del método de control Spring MVC?
- 23. Spring 3 JSON con MVC
- 24. parámetro persistente en el controlador de Rails
- 25. Struts2 vs Spring 3
- 26. ¿Por qué mi validador de Spring 3 lo valida todo en el modelo?
- 27. ¿Cómo puedo obtener un objeto del modelo en el controlador con Spring MVC 3?
- 28. ¿El controlador Spring-MVC redirige a la página "anterior"?
- 29. MVC Html.ActionLink ignora el parámetro Controlador
- 30. parámetro gsp que pasa desde el controlador
Desde estas corrientes se obtienen de la API de servlets, consulte http://stackoverflow.com/questions/1159168/should-one-call-close-on-httpservletresponse-getoutputstream-getwriter – axtavt
posible duplicado de [¿Debo cerrar la servlet outputstream?] (http://stackoverflow.com/questions/1829784/should-i-close-the-servlet-outsputstream) – BalusC