天天看點

Controller和RestController的差別

1. Controller, RestController的共同點

     都是用來表示Spring某個類的是否可以接收HTTP請求

2.  Controller, RestController的不同點

     @Controller:  辨別一個Spring類是Spring MVC controller處理器

     @RestController:    @RestController是@Controller和@ResponseBody的結合體,兩個标注合并起來的作用。

  @Controller類中的方法可以直接通過傳回String跳轉到jsp、ftl、html等模版頁面。在方法上加@ResponseBody注解,也可以傳回實體對象。

  @RestController類中的所有方法隻能傳回String、Object、Json等實體對象,不能跳轉到模版頁面。

@RestController中的方法如果想跳轉頁面,則用ModelAndView進行封裝,如下:

示例如下:

@Controller注解源碼:

@RestController注解源碼: