Spring 3.0のドキュメントのSection 15.3.2.3 Supported handler method arguments and return typesでは、レスポンスのコンテンツを生成するために@RequestMappingでアノテーションされたメソッドのパラメータとしてjava.io.OutputStreamまたはjava.io.Writerを指定することができます。サーブレットAPIによって公開されるOutputStream/Writer作者が終了する前に閉じるか、開いたままにしておき、他のいくつかのSpringプロセスで閉じるべきかどうかは、メソッドの責任ですか?WriterパラメータをSpring 3コントローラにクローズする必要がありますか?
6
A
答えて
3
それだけのままにする必要があります。一般的な経験則として、あなたのコードがそれを開かなかった場合、コードはそれを閉じるべきではありません。
この場合、サーブレットコンテナ(Springではなく)がすべてのストリームをフラッシュして閉じることになります。
あなたはになります。あなたはそれを自分で行いますが、それは何らかの害を及ぼすことはないと思いますが、そうする必要はありません。
+0
春に提供されるストリームを閉じるべきではありませんが、パイプを使用するとどうなりますかすなわち、 CSVWriterライター=新しいCSVWriter(springWriter); writer.writeLine( "blabla"); 私は作家を閉じない(または少なくともそれをフラッシュする)場合、私は何らかの種類のバッファで行われるので、私は仕事を失うかもしれません。 –
1
skaffmanは正しいですが、閉じる必要はありませんが、実際には使用しないでください。ただし、コードを処理している場合は、特に 'finally'節でflush()することをお勧めします。例外をスローします。つまり、データベースからのエクスポートです。
関連する問題
- 1. クローズ接続を呼び出す必要がありますか?
- 2. コントローラから指示にアクセスする必要があります
- 3. コントローラ(MVC)をテストする必要がありますか?
- 4. コントローラからjsonデータを返す必要がありますか?
- 5. spring jdbcでデータソースをプロトタイプスコープにする必要があります
- 6. RequestAnimationFrame - DOMHighResTimeStampパラメータを使用する必要がありますか?
- 7. コンストラクタのパラメータを検証する必要がありますか?
- 8. C# - パラメータコレクションにパラメータを追加する必要があります
- 9. ルーティングとコントローラに配列を渡す必要があります
- 10. Spring SecurityはSpring Sessionを使用する必要がありますか?
- 11. コントローラはInjectApplicationEventInterfaceを実装する必要があります
- 12. AngularJS undefinedコントローラを使用する必要があります
- 13. Mongooseコントローラをクラスまたはオブジェクトにする必要がありますか?
- 14. (Python)パラメータを使用するか、グローバルにする必要がありますか?
- 15. UITextFieldのコントローラを作成する必要はありますか?
- 16. 'メインスレッドでMBProgressHUDにアクセスする必要があります。' - Swift 3
- 17. JavaScriptにはクローズがありますか?
- 18. アクションリンクをクリックするとビューからパラメータを渡してコントローラを呼び出す必要があります
- 19. コントローラに通常の方法を使用する必要がありますか?
- 20. Openflow:メタデータをコントローラに送信する必要がありますか?
- 21. キャストタイプのパラメータは動的である必要があります
- 22. コンストラクタはパラメータを指定する必要があります
- 23. 基本クエリをパラメータ化する必要があります
- 24. モデル内のパラメータを更新する必要があります
- 25. PlayパラメータでHTMLをレンダリングする必要があります
- 26. ASP.NET MVCビューをパラメータ化する必要があります
- 27. パラメータを定義する必要があります
- 28. Tをパラメータ、関数、または何にする必要がありますか?
- 29. Symfony APIコントローラはレスポンスを返す必要があります
- 30. MVCアーキテクチャ/ SoC:コントローラがDBトランザクションを開始する必要がありますか?
これらのストリームはServlet APIから取得されるため、http://stackoverflow.com/questions/1159168/should-one-call-close-on-httpservletresponse-getoutputstream-getwriter – axtavt
[サーブレットの出力ストリーム?](http://stackoverflow.com/questions/1829784/should-i-close-the-servlet-outputstream) – BalusC