49.5. 配置客户端端点
概述
通过注册和配置功能和提供程序,可以添加 base javax.ws.rs.client.Client
对象的功能。
示例
以下示例显示了配置为具有日志记录功能、自定义实体提供程序以及将 prettyLogging
属性设置为 true
的客户端:
// Java import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Client; import org.apache.cxf.feature.LoggingFeature; ... Client client = ClientBuilder.newClient(); client.register(LoggingFeature.class) .register(MyCustomEntityProvider.class) .property("LoggingFeature.prettyLogging","true");
用于注册对象的可配置 API
Client
类支持 Configurable
API 用于注册对象,它提供一些变体的 寄存器
方法。在大多数情况下,您可以注册一个类或对象实例,如下例所示:
client.register(LoggingFeature.class) client.register(new LoggingFeature())
有关 寄存器
变体的详情,请查看 Configurable
参考文档。
您可以对客户端配置什么?
您可以配置客户端端点的以下方面:
- 功能
- 供应商
- Properties
- 过滤器
- 拦截器
功能
javax.ws.rs.core.Feature
实际上是一个插件,为 JAX-RS 客户端添加额外的功能或功能。通常,一个功能会安装一个或多个拦截器以提供所需的功能。
供应商
提供程序是特定的客户端插件,可提供映射功能。JAX-RS 2.0 规范定义以下类型的提供程序:
- 实体提供程序
- 实体提供程序 提供特定介质类型 Java 类型之间的映射功能。如需了解更多详细信息,请参阅 第 49.4 节 “解析请求和响应”。
- 异常映射供应商
-
例外映射提供程序 将选定的运行时异常映射到
响应
的实例。 - 上下文供应商
- 在服务器端使用上下文提供程序,为资源类和其他服务提供商提供上下文。
过滤器
JAX-RS 2.0 过滤器是一种插件,可让您访问消息处理管道的各种点(extension 点)上的 URI、标头和各种上下文数据。详情请查看 第 61 章 JAX-RS 2.0 过滤器和拦截器。
拦截器
JAX-RS 2.0 拦截器是一种插件,可让您在请求或写出时访问请求的消息正文。详情请查看 第 61 章 JAX-RS 2.0 过滤器和拦截器。
Properties
通过在客户端上设置一个或多个属性,您可以自定义注册功能或注册的供应商的配置。
其他可配置类型
不可能配置 javax.ws.rs.client.Client
(和 javax.ws.rs.client.client.ClientBuilder
)对象,还是一个 WebTarget
对象。当您更改 WebTarget
对象的配置时,底层客户端配置会深入复制,以提供新的 WebTarget
配置。因此,可以在不更改原始 Client
对象的配置的情况下更改 WebTarget
对象的配置。