@ResponseBody
メソッドで @ResponseBody
アノテーションを使用して、HttpMessageConverter を介して戻り値をレスポンス本体に直列化できます。次のリストに例を示します。
Java
Kotlin
@GetMapping("/accounts/{id}")
@ResponseBody
public Account handle() {
// ...
}
@GetMapping("/accounts/{id}")
@ResponseBody
fun handle(): Account {
// ...
}
@ResponseBody
はクラスレベルでもサポートされます。この場合、すべてのコントローラーメソッドによって継承されます。これは @RestController
の効果であり、これは @Controller
および @ResponseBody
でマークされたメタアノテーションにすぎません。
ファイルコンテンツに対して Resource
オブジェクトを返すことができ、提供されたリソースの InputStream
コンテンツをレスポンス OutputStream
にコピーします。レスポンスにコピーされた後、確実に閉じるためには、InputStream
を Resource
ハンドルで遅延取得する必要があることに注意してください。このような目的で InputStreamResource
を使用する場合は、オンデマンド InputStreamSource
を使用して構築するようにしてください (たとえば、実際の InputStream
を取得するラムダ式を使用)。
MVC 構成のメッセージコンバーターオプションを使用して、メッセージ変換を構成またはカスタマイズできます。
@ResponseBody
メソッドを JSON 直列化ビューと組み合わせることができます。詳細については、Jackson JSON を参照してください。