2

我有一个使用 Spring MVC 开发的 RESTful Web 服务,并且没有任何配置,我可以从我的带@ResponseBody注释的控制器方法返回对象,这些方法被序列化为 JSON。只要请求中的 Accept 标头未设置或为application/json.

当我受到 GitHub API 规范的启发时,我想像GitHub 那样为我的 API 实现自定义 mime 类型,例如:application/vnd.myservice+json. 但是我需要告诉 Spring MVC 我的控制器可以提供这种 mime 类型并且它应该由 Json 序列化(即 org.springframework.web.servlet.view.json.MappingJacksonJsonView 类)。

知道怎么做吗?

4

1 回答 1

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>

它应该只适用于这些更改

于 2012-08-19T23:14:24.493 回答