Spring Bootでファイルのダウンロードを試してみました。HttpServletResponseを引数に受け取ってServlet時代と同じように書き込みをする方法もあるみたいなのですが、今回はResponseEntityというクラスを使ってみました。
こいつを使ってContent-Typeなんかを設定してBodyを設定してやればOKっぽいです。こんなコードになりました。
@RequestMapping(value = "/download", method = RequestMethod.GET) public ResponseEntity<byte[]> download() throws IOException { HttpHeaders h = new HttpHeaders(); h.add("Content-Type", "text/csv; charset=MS932"); h.setContentDispositionFormData("filename", "hoge.csv"); return new ResponseEntity<>("あ,い,う,え,お".getBytes("MS932"), h, HttpStatus.OK); }