Spring中@Controller和@RestController之間的區別


1. Controller, RestController的共同點

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


2.  Controller, RestController的不同點

     @Controller標識一個Spring類是Spring MVC controller處理器

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


示例如下:

  1. @Controller  
  2. @ResponseBody  
  3. public class MyController { }  
  4.   
  5. @RestController  
  6. 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實現的定義:

 

Java代碼  
  1. @Target(value=TYPE)  
  2.  @Retention(value=RUNTIME)  
  3.  @Documented  
  4.  @Controller  
  5.  @ResponseBody  
  6. public @interface RestController  

 

 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM