rest - JAX-RS/Jersey 中的资源类和提供程序类有什么区别?

标签 rest jersey jax-rs

在 Jersey/JAX-RS 中,我听到术语“资源类”和“提供者”。我不清楚这两者之间有什么区别。有人可以提供一些正确的解释吗?

最佳答案

Resource classes您的类是用 @Path 注释的,而提供程序是我们可以扩展/实现的任何其他类,这些类允许我们利用/扩展 JAX-RS 框架,即

  • ContainerRequestFilter
  • ContainerResponseFilter
  • MessageBodyReader
  • MessageBodyWriter
  • WriterInterceptor
  • ReaderInterceptor
  • ContextResolver
  • 异常映射器
  • ClientRequestFilter
  • ClientResponseFilter

除了客户端过滤器之外,所有这些提供程序类都可以使用 @Provider 进行注释,并在启用扫描时自动在服务器端注册。

您可能经常听到诸如“您使用的是什么 JSON 提供程序?”之类的问题。这是指 MessageBodyReaderMessageBodyWriter,它是一种提供程序,或更准确地说是“实体提供程序”,如 the docs 中所述。 。这实际上是唯一具有自己的前缀类型的提供程序类型。所有其他人都只是概括为“提供者”。

可能还有更多的提供商类型,但这些是我现在能想到的全部。

关于rest - JAX-RS/Jersey 中的资源类和提供程序类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52727796/

相关文章:

java - 在具有 Java REST 后端的 iPhone 应用程序中使用第 3 方 oauth2 服务

Java REST Web 服务 404 错误

java - JAX-RS Multipart 与 com.sun.jersey

java - 使用 JAXB/JAX-RS 将 XML 元素包装在子元素中

android - REST api项目的用户认证方法

c# - WCF JSON 反序列化中的空格问题

android - Android 上 Jetty 上的 Jersey 抛出 ContainerException : The ResourceConfig instance does not contain any root resource classes

java - 如何在 JAX-RS 中设置响应 header ,以便在自定义生成的文件中正确显示中文字符

php - SLIM PHP api 400 错误 - $_REQUEST 不起作用

java - 使用 swagger UI 记录包装的 REST 响应