1. 程式人生 > 其它 >@ResponseBody註解作用與原理

@ResponseBody註解作用與原理

1、概念
註解 @ResponseBody,使用在控制層(controller)的方法上。

2、作用
將方法的返回值,以特定的格式寫入到response的body區域,進而將資料返回給客戶端。
當方法上面沒有寫ResponseBody,底層會將方法的返回值封裝為ModelAndView物件。
如果返回值是字串,那麼直接將字串寫到客戶端;如果是一個物件,會將物件轉化為json串,然後寫到客戶端。

3、注意編碼
註解中我們可以手動修改編碼格式,例如@RequestMapping(value="/cat/query",produces="text/html;charset=utf-8"),前面是請求的路徑,後面是編碼格式。

4、原理
控制層方法的返回值是如何轉化為json格式的字串的?其實是通過HttpMessageConverter中的方法實現的,它本是一個介面,在其實現類完成轉換。如果是bean物件,會呼叫物件的getXXX()方法獲取屬性值並且以鍵值對的形式進行封裝,進而轉化為json串。如果是map集合,採用get(key)方式獲取value值,然後進行封裝。