我正在遵循 Jersey 教程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,以便我不会在以后遇到这个问题?
最佳答案
了解@Produces
批注
@Produces
批注用于指定资源可以生成并发送回客户端的表示形式的MIME媒体类型。
JAX-RS运行时将传入请求的 Accept
header 的值与 @Produces
批注的值进行比较,以匹配将处理此类请求的资源方法。
在没有 @Produces
批注的情况下,假定支持任何媒体类型(*/*
)。有关完整引用,请检查JAX-RS specification。
你可以做什么
为了减少代码中 @Produces
批注的数量,您可以批注资源类而不是批注资源方法。
提示:要减少打印错误,可以使用常量值:
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
看一看
MediaType
类。关于java - Jersey 多种农产品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38488903/