@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 を取得するラムダ式を使用)。

@ResponseBody はリアクティブ型で使用できます。詳細については、非同期リクエストおよびリアクティブ型を参照してください。

MVC 構成メッセージコンバーターオプションを使用して、メッセージ変換を構成またはカスタマイズできます。

@ResponseBody メソッドを JSON 直列化ビューと組み合わせることができます。詳細については、Jackson JSON を参照してください。