Java 当多个端点映射到同一路径时,Spring MVC默认MIME类型
我在控制器中有两个端点映射到具有不同MIME类型的相同路径(控制器的根路径)Java 当多个端点映射到同一路径时,Spring MVC默认MIME类型,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我在控制器中有两个端点映射到具有不同MIME类型的相同路径(控制器的根路径) @RequestMapping(method = RequestMethod.GET, produces = {"application/a+json"}) public ResponseEntity<URI> methodA() { } @RequestMapping(method = RequestMethod.GET, produces = {"application/b+json"}) publi
@RequestMapping(method = RequestMethod.GET, produces = {"application/a+json"})
public ResponseEntity<URI> methodA() {
}
@RequestMapping(method = RequestMethod.GET, produces = {"application/b+json"})
public ResponseEntity<URI> methodB() {
}
@RequestMapping(method=RequestMethod.GET,products={“应用程序/a+json”})
公共响应方法A(){
}
@RequestMapping(method=RequestMethod.GET,products={“应用程序/b+json”})
公共响应方法B(){
}
当没有Accept
头与请求一起发送时,响应类型始终为application/a+json
默认情况下,
springmvc
是如何选择的?经过一些试验,我的观察是,它是根据字母顺序选择的(MIME类型以a
开头,而不是以b
开头),但我没有找到任何相关文档。这就是它的工作原理吗 即使您看到一些订单,我也建议不要依赖它
相反,请定义另一个不声明生成
的方法,这样您就可以肯定地知道没有发送接受
,而不是:
与应用程序/a+json一起发送或根本不发送
这种第三种方法实际上什么也做不了,它可以委托给您已经拥有的任何东西,例如最初记录请求 @Eugene在这种情况下,响应类型为application/json
,因此这确实是一个被调用的响应。我想这是一个暂时可以接受的解决方法。我真正想要的是: