3 回答
TA贡献1810条经验 获得超4个赞
Spring MVC 中的 @RestController 注解只不过是 @Controller 和 @ResponseBody 注解的组合。它被添加到 Spring 4.0 中,使 Spring 框架中的 RESTful Web Services 开发变得更加容易。
@Controller 的工作是创建模型对象的 Map 并查找视图,但 @RestController 只是返回对象,并且对象数据直接以 JSON 或 XML 形式写入 HTTP 响应。
@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条经验 获得超3个赞
上下文是 Spring MVC 的一个非常高的概述,它是采用 Front Controller 设计模式设计的,其中 Dispatcher servlet 将接收所有请求并调用相应的处理程序,以便调用您的控制器方法,并且您的控制器类使用 @Controller 注释进行注释。返回值并尝试在 MVC 中找到 View,以便您需要配置 ViewResolver 的任何一种实现(如果您需要使用相应的视图位置配置 InternalResourceViewResolver 和 Themeleaf)。
如果您的控制器使用 @RestController 进行注释,则处理程序的返回值将被视为 Http 响应 Dispatcher servlet 将不会查看任何视图(它将认为返回值是 http 响应正文)
您可以使用 @Controller 注释本身实现相同的效果,只需在处理程序方法中添加此注释 @ResponseBody (返回值被视为 http 响应)。
TA贡献1775条经验 获得超8个赞
@RestController是@Controller和@ResponseBody的组合。因此请求处理方法将对象作为Json或XML返回到HttpResponse中,因此不需要@ResponseBody。
@RestController
public class UserRestController { }
@Controller
@ResponseBody
public class UserController { }
@ResponseBody 是一个 Spring 注释,它绑定一个返回值到 Web 响应主体的方法。它告诉控制器返回的对象自动序列化为 JSON 并传递回 HttpResponse 对象。
添加回答
举报