天天看點

@Controller與@RestController的差別

今天新來的同僚問了一個問題,他說自己公司之前用的都是@Controller注解,現在公司用的都是@RestController,那麼二者在作用上有什麼差別?

其實說起來很簡單,@RestController注解就相當于@[email protected],現在主流網際網路公司設計的項目資料互動方式的都是json+http,基本不存在頁面跳轉,是以我們直接使用@RestController注解會使得開發更加便捷,需要注意一點的是用了@RestController注解之後,controller是無法傳回jsp頁面的,配置的視圖解析器InternalResourceViewResolver失效,傳回的内容就是Return裡面的内容。

而如果一個controller中既有跳轉jsp頁面的方法,又有傳回json資料的方法怎麼辦呢?此時我們隻能放棄@RestController 的使用了,需要用@Controller配合視圖解析器完成,然後在需要傳回json、xml或自定義mediaType内容到頁面的方法上添加@ResponseBody注解。

繼續閱讀