第 52 章 获取和使用上下文信息

摘要

上下文信息包括资源 URI、HTTP 标头和其他未使用其他注入注解无法立即可用的详细信息。Apache CXF 提供特殊的类,它将所有可能的上下文信息放在单个对象中。

52.1. 上下文简介

上下文注解

您指定上下文信息是使用 javax.ws.rs.core.Context 注解注入字段或资源方法参数。为其中一个上下文类型添加字段或参数将指示运行时将选择适当的上下文信息注入注解字段或参数。

上下文类型

表 52.1 “上下文类型” 列出可注入的上下文信息的类型以及支持它们的对象。

表 52.1. 上下文类型

对象上下文信息

UriInfo

完整请求 URI

HttpHeaders

HTTP 消息标头

Request(请求)

用于确定最佳表示变体或确定是否设置了一组前提条件的信息

SecurityContext

有关请求者安全(包括验证方案)的信息,如果请求频道安全,以及用户原则

可在使用上下文信息的位置

上下文信息适用于 JAX-RS 应用的以下部分:

  • 资源类
  • 资源方法
  • 实体提供程序
  • 异常映射程序

影响范围

使用 @Context 注释注入的所有上下文信息都特定于当前请求。在所有情况下,包括实体提供商和异常映射程序都是如此。

添加上下文

借助 JAX-RS 框架,开发人员可以扩展可使用上下文机制注入的信息类型。您可以通过实施 Context<T> 对象并将其注册到运行时来添加自定义上下文。