没有@ResponseBody的@RestController方法工作不正确
我有以下控制器:
@RestController @RequestMapping(value = "/base/url") public class MyController { @RequestMapping( value = "/child/url", method = RequestMethod.POST ) @ResponseBody public String mmm() { return "Ok"; } }
现在它的工作(服务器响应Ok
)但我认为@ResponseBody
多余的,因为我们使用@RestController
并删除了@ResponseBody注释
我看到以下服务器响应:
Error 404 Not Found HTTP ERROR 404
Problem accessing /base/url/child/url/Ok. Reason:
Not Found
Powered by Jetty://
你能解释一下这种行为吗?
PS
Spring版本:
4.1.6.RELEASE
PS
我发现只有这部分与mvc配置相关:
为了能够使用
@RestController
您必须显式启用新的注释处理类。 通过添加(对于XML)或
@EnableWebMvc
(对于Java Config)。默认情况下,
DispatcherServlet
注册现在已弃用的AnnotationMethodHandlerAdapter
和DefaultAnnotationHandlerMapping
,它们可被视为前任或更新的东西。