我使用@RequestMapping
的“生成”标签做了一个POC,我不明白为什么会使用这个标签?
文件说:
您可以通过指定可生成列表来缩小主映射 媒体类型。 仅在Accept请求时才会匹配请求 标题匹配其中一个值。此外,使用产品 condition确保用于生成的实际内容类型 response取决于生成条件中指定的媒体类型。
当我在我的应用程序中使用它时,当我在没有设置Accept请求标头的情况下调用服务时,我也可以访问该服务,Narrowing意味着什么?
@RequestMapping(value="/public/login",
method=RequestMethod.POST,
produces="application/json")
public @ResponseBody LoginResponse loginUser(@RequestBody LoginEvent loginEvent) {
return null;
}
我没有理解其使用的原因。
答案 0 :(得分:1)
不发送Accept
标题相当于接受所有内容。如果您只有一个方法映射到/public/login
,则无需缩小任何内容,因此该方法将始终匹配。
但是Spring不知道响应应该是什么格式,它会选择下一个最好的格式,可以这么说。 produces="application/json"
确保选择JSON作为输出格式。
答案 1 :(得分:0)
produces="application/json"
表示您的方法将生成json作为结果,它将作为响应发送。