我应该将Writer参数关闭到Spring 3控制器吗?

时间:2010-12-10 16:00:02

标签: java servlets spring-mvc

在Spring 3.0文档的Section 15.3.2.3 Supported handler method arguments and return types中,它表示可以将java.io.OutputStream或java.io.Writer指定为使用@RequestMapping注释的方法的参数,以生成响应的内容。这个值是Servlet API公开的原始OutputStream / Writer。“方法是否有责任在编写器完成之前关闭它,或者它应该保持打开状态,而其他一些Spring进程是否会关闭它?

2 个答案:

答案 0 :(得分:3)

应该不管它。作为一般的经验法则,如果您的代码没有打开它,那么它也不应该关闭它。

在这种情况下,servlet容器(不是Spring)负责刷新和关闭所有流。

可以自己做,我怀疑它会造成任何伤害,但是没有必要这样做。

答案 1 :(得分:1)

skaffman是正确的,你不必关闭它,实际上可能不应该关闭它,但是刷新()它仍然是一个好主意,特别是在'finally'子句中,如果你正在处理代码那么抛出异常,即从数据库导出。