当前位置: 首页 > 知识库问答 >
问题:

JAX-RS中的Provider是什么意思?

太叔烨霖
2023-03-14

谁能给我解释一下什么是JAX-RS提供程序,以及'@Provider'注释做什么?我一直在阅读文档,但我没有得到它。
如果有资源类为传入的请求服务,提供者该怎么做?当我创建一个持久资源类(不是每个请求的资源类)时,它们与单例资源类有什么不同?或者这些类也是提供者?

共有1个答案

广晔
2023-03-14

提供程序只是扩展和定制JAX-RS运行时的一种方式。您可以将它们视为插件,这些插件(潜在地)改变运行时的行为,以实现一组(程序定义的)目标。

提供者与资源类不同,它们在概念上存在于资源类和JAX-RS实现之间的一个层次上。如果有帮助,您可以将它们看作设备驱动程序(存在于用户和内核空间之间)。这是一个广义的概括。

当前的JAX-RS规范定义了三类提供者。它们之间的共同点是,所有提供程序都必须由@Provider注释标识,并遵循一定的构造函数声明规则。除此之外,不同的提供程序类型可能有附加的注释,并且将实现不同的接口。

实体提供程序

这些提供者控制数据表示(如XML、JSON、CSV)到它们的Java对象等价物的映射。

上下文提供程序

这些提供程序控制资源可以通过@context注释访问的上下文。

异常提供程序

这些提供者控制Java异常到JAX-RS响应实例的映射。

您的运行时将附带许多预定义的提供程序,这些提供程序将负责实现基本级别的功能(例如,映射到XML和从XML映射,翻译最常见的异常等等)。您还可以根据需要创建自己的提供程序。

JAX-RS规范是一个很好的参考,可以阅读这些不同的提供者类型以及它们的功能(请参见第4章)。

 类似资料:
  • 问题内容: 谁能给我解释一下JAX-RS Provider是什么,’@ Provider’注释是什么?我一直在阅读文档,但无法理解。 如果存在为传入请求提供服务的资源类,提供者将做什么?当我创建一个持久性资源类(不是每个请求一个)时,它们与单例资源类有何不同?还是那些课程也是提供者? 问题答案: 提供者是扩展和定制JAX-RS运行时的简单方法。您可以将它们视为可以(可能)更改运行时行为的插件,以实

  • 我做了一个使用JAX-RS(RESTfull服务)的简单项目 我有一个JAX-RS(RESTfull service)webservice项目,它部署到JBoss6.1中。默认情况下,JBoss6.1提供了与JSON集成的resteasy。我想更改默认JSON资源的日期格式。 null 没有被调用,我仍然得到默认的JSON日期格式。 即使在pom.xml下添加以下依赖项也没有帮助: 有人知道为什么

  • 问题内容: 我正在阅读“ RESTful Java with JAX-RS 2.0”一书。我对异步JAX- RS完全感到困惑,因此我将所有问题合而为一。本书是这样写异步服务器的: Netbeans创建异步服务器,如下所示: 那些不创建后台线程的对象使用某些锁定方法来存储响应对象以进行进一步处理。此示例用于向客户发送股票报价: 对象将与某些后台作业共享,并在准备就绪时将报价发送给所有客户端。 我的问

  • 问题内容: 我只是熟悉使用JAX-RS在Java中实现REST Web服务,因此遇到了以下问题。我的资源类之一要求访问存储后端,该后端在接口后被抽象化。我想将当前实例注入到服务REST请求的资源类中,并且我认为这样做的一种好方法是使用批注和适当的类。这是我到目前为止所拥有的: 在: 在: 我用来自动发现提供程序和资源类,并且根据日志,它很好地拾取了该类(故意遗漏了时间戳和不必要的内容): 但是,资

  • 问题内容: JAX-RS 和 之间有什么区别?从文档中,queryparam和matrixparam都可以在特殊条件下定位一个资源。那么用例有什么区别? ps: Queryparam: 矩阵参数 问题答案: 如本Oracle文档所述: 在和其他基于参数的注解, ,,,遵守同样的规则。从URL路径段中提取信息。从HTTP标头中提取信息。从与Cookie相关的HTTP标头中声明的Cookie中提取信息

  • JAX-RS (JSR 311) 是一个社区驱动的标准用于使用 Java 构建 RESTful Web 服务。