是否有一种应用程序范围内的方法,可以在所有JAX-RS/资源上默认@Produces批注?

我有很多产生Web服务的类。与其将@Produces({"application/json", "application/xml"})放在每个标签上,不如放在一个中央位置。这样,我可以将 future 的生产者添加到一个地方,而不必修改每个类。

我当前正在将Resteasy与Jetty一起使用。

最佳答案

我知道这个问题有点老了,但对像我这样的人可能会有帮助。除了ccleve解决方案之外,您还可以使用接口(interface)。由于具有多重继承,因此您可以通过接口(interface)组合多种媒体类型。例子:

@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface IJsonResource {
}


@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_XML)
public interface IXmlResource {
}

然后在您的具体JAX-RS资源类中:
public class SomeJaxRsResource implements IJsonResource, IXmlResource {
...
}

09-10 21:54