@RequestMapping vs @RequestBody
@RequestMapping:用于處理請求 url 映射的注解,可用于類或方法上。用于類上,則表示類中的所有響應請求的方法都是以該位址作為父路徑。
@RequestBody:注解實作接收http請求的json資料,将json轉換為java對象。
@ResponseBody:注解實作将conreoller方法傳回對象轉化為json對象響應給客戶。
@RequestMapping 傳回的東西,會經過視圖解析器。例如:傳回“hello”,會被視圖解析器拼接為類似WEB-INF/jsp/HelloController/hello.jsp,然後去通路該jsp界面。
而@RequestBody 傳回的東西,不會經過視圖解析器。傳回“hello”,就是一個字元串“hello”
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iZhFDM4kDOwUTYygDN0MGZzImNhFWN0EWYxYzN1Q2Yj9CX0EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
@Controller vs @RestController
@Controller 下面的方法,傳回的值可能經過視圖解析器拼接(@RequestMapping),也可能不經過(@RequestBody)
@RestController 下面的方法,傳回的值就是一個字元串,不經過視圖解析器。(常用!!!前後端分離的開發項目經常使用!!!)
@RestController注解相當于@ResponseBody + @Controller