3 回答

TA貢獻1810條經(jīng)驗 獲得超4個贊
Spring MVC 中的 @RestController 注解只不過是 @Controller 和 @ResponseBody 注解的組合。它被添加到 Spring 4.0 中,使 Spring 框架中的 RESTful Web Services 開發(fā)變得更加容易。
@Controller 的工作是創(chuàng)建模型對象的 Map 并查找視圖,但 @RestController 只是返回對象,并且對象數(shù)據(jù)直接以 JSON 或 XML 形式寫入 HTTP 響應(yīng)。
@SuppressWarnings({})
@RestController
public class TestController {
@PostMapping("/test/1")
public Object Test1(@RequestBody HashMap<String, String> obj) throws ParseException, IOException {
return null;
}
閱讀更多:https ://javarevisited.blogspot.com/2017/08/difference- Between-restcontroller-and-controller-annotations-spring-mvc-rest.html#ixzz62Jw1WOs3

TA貢獻1946條經(jīng)驗 獲得超3個贊
上下文是 Spring MVC 的一個非常高的概述,它是采用 Front Controller 設(shè)計模式設(shè)計的,其中 Dispatcher servlet 將接收所有請求并調(diào)用相應(yīng)的處理程序,以便調(diào)用您的控制器方法,并且您的控制器類使用 @Controller 注釋進行注釋。返回值并嘗試在 MVC 中找到 View,以便您需要配置 ViewResolver 的任何一種實現(xiàn)(如果您需要使用相應(yīng)的視圖位置配置 InternalResourceViewResolver 和 Themeleaf)。
如果您的控制器使用 @RestController 進行注釋,則處理程序的返回值將被視為 Http 響應(yīng) Dispatcher servlet 將不會查看任何視圖(它將認為返回值是 http 響應(yīng)正文)
您可以使用 @Controller 注釋本身實現(xiàn)相同的效果,只需在處理程序方法中添加此注釋 @ResponseBody (返回值被視為 http 響應(yīng))。

TA貢獻1775條經(jīng)驗 獲得超8個贊
@RestController是@Controller和@ResponseBody的組合。因此請求處理方法將對象作為Json或XML返回到HttpResponse中,因此不需要@ResponseBody。
@RestController
public class UserRestController { }
@Controller
@ResponseBody
public class UserController { }
@ResponseBody 是一個 Spring 注釋,它綁定一個返回值到 Web 響應(yīng)主體的方法。它告訴控制器返回的對象自動序列化為 JSON 并傳遞回 HttpResponse 對象。
添加回答
舉報