泽西多重生产

时间:2016-07-20 19:07:12

标签: java jersey jax-rs

我正在关注球衣教程here,以弄清楚如何制作多个mime输出。从他们的网站,这是推荐的方式:

@GET
@Produces({"application/xml", "application/json"})
    public String doGetAsXmlOrJson() {
    ...
}

我无法弄清楚如何抽象@Produces,以便我的代码更欢迎它可以产生的其他mime类型。比方说,我有500个方法都有这个注释:

@Produces({"application/xml", "application/json"})

如果我要求将kml添加为mime类型,编辑和替换所有这些值肯定会非常耗时。

@Produces({"application/xml", "application/json", "application/kml"})

是否有可能更有效地构建@Produces,以便我不会遇到这个问题?

1 个答案:

答案 0 :(得分:10)

了解@Produces注释

@Produces注释用于指定资源可以生成并发送回客户端的表示的MIME媒体类型。

JAX-RS运行时将传入请求的Accept标头的值与@Produces注释的值进行比较,以匹配将处理此类请求的资源方法。

如果没有@Produces注释,则假定支持任何媒体类型(*/*)。有关完整参考,请查看JAX-RS specification

你能做什么

要减少代码中@Produces注释的数量,您可以注释资源类,而不是注释资源方法

提示:要减少印刷错误,您可以使用常量值:

@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })

查看MediaType课程。