我有一个使用Spring MVC开发的RESTful Web服务,没有任何配置,我可以从被{序列化为JSON的@ResponseBody
带注释的控制器方法返回对象。只要请求中的Accept标头未设置或application/json
,就会生效。
由于我受到GitHub API规范的启发,我想为我的API实现GitHub does的自定义mime类型,例如:application/vnd.myservice+json
。但是我需要告诉Spring MVC我的控制器可以提供这种mime类型,并且它应该由Json序列化(即org.springframework.web.servlet.view.json.MappingJacksonJsonView类)。
知道该怎么做吗?
答案 0 :(得分:2)
您可以完全按照org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
执行操作。由于它不是最终类,您可以通过这种方式从这个转换出来:
class MyCustomVndConverter extends MappingJacksonHttpMessageConverter{
public MyCustomVndConverter (){
super(MediaType.valueOf("application/vnd.myservice+json"));
}
}
然后以这种方式注册您的转换器:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="MyCustomVndConverter "/>
</mvc:message-converters>
</mvc:annotation-driven>
它应该只适用于这些变化