@RequestBody, spring will try to convert the content of the incoming request body to your parameter object on the fly.@ResponseBody, spring will try to convert its return value and write it to the http response automatically
@Controller @RequestMapping(value = "/bookcase") public class BookCaseController { private BookCase bookCase; @RequestMapping(method = RequestMethod.GET) @ResponseBody public BookCase getBookCase() { return this.bookCase; } @RequestMapping(method = RequestMethod.PUT) @ResponseStatus(HttpStatus.NO_CONTENT) public void setBookCase(@RequestBody BookCase bookCase) { this.bookCase = bookCase; } }
Depending on your configuration, spring has a list of HttpMessageConverters registered in the background. A HttpMessageConverters responsibility is to convert the request body to a specific class and back to the response body again, depending on a predefined mime type. Every time an issued request is hitting a @RequestBody or @ResponseBody annotation spring loops through all registered HttpMessageConverters seeking for the first that fits the given mime type and class and then uses it for the actual conversion.
Refer here