1. Controller, RestController的共同點
2. Controller, RestController的不同點
@Controller標識一個Spring類是Spring MVC controller處理器
@RestController: @RestController是@Controller和@ResponseBody的結合體,兩個標注合並起來的作用。
示例如下:
- @Controller
- @ResponseBody
- public class MyController { }
- @RestController
- public class MyRestController { }
4.0重要的一個新的改進是@RestController注解,它繼承自@Controller注解。4.0之前的版本,Spring MVC的組件都使用@Controller來標識當前類是一個控制器servlet。
使用這個特性,我們可以開發REST服務的時候不需要使用@Controller而專門的@RestController。
當你實現一個RESTful web services的時候,response將一直通過response body發送。為了簡化開發,Spring 4.0提供了一個專門版本的controller。下面我們來看看@RestController實現的定義:
- @Target(value=TYPE)
- @Retention(value=RUNTIME)
- @Documented
- @Controller
- @ResponseBody
- public @interface RestController