gst*_*low 6 java rest spring controller spring-mvc
我有以下控制器:
@RestController
@RequestMapping(value = "/base/url")
public class MyController {
@RequestMapping(
value = "/child/url",
method = RequestMethod.POST
)
@ResponseBody
public String mmm() {
return "Ok";
}
}
Run Code Online (Sandbox Code Playgroud)
现在它的工作(服务器响应Ok
),但我认为这是@ResponseBody
多余的,因为我们使用@RestController
和删除@ResponseBody注释
我看到以下服务器响应:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body>
<h2>HTTP ERROR 404</h2>
<p>Problem accessing /base/url/child/url/Ok. Reason:
<pre> Not Found</pre>
</p>
<hr />
<i>
<small>Powered by Jetty://</small>
</i>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
你能解释一下这种行为吗?
春季版: 4.1.6.RELEASE
PS
我发现只有这部分与mvc配置相关:
<context:annotation-config/>
<context:component-scan base-package="base.package"/>
Run Code Online (Sandbox Code Playgroud)
为了能够使用,@RestController
您必须显式启用新的注释处理类.通过添加<mvc:annotation-driven />
(对于XML)或@EnableWebMvc
(对于Java Config).
默认情况下,该DispatcherServlet
寄存器的,现在已经过时,AnnotationMethodHandlerAdapter
并且DefaultAnnotationHandlerMapping
这可以被认为是前任或较新的东西.
归档时间: |
|
查看次数: |
3143 次 |
最近记录: |