为了账号安全,请及时绑定邮箱和手机立即绑定

我可以使用@Context注释注入哪些对象?

我可以使用@Context注释注入哪些对象?

繁花如伊 2019-10-10 16:52:29
我是JAX-RS的新手,我试图了解@Context注释的工作方式。在javadoc的有六类(列表Application,UriInfo,Request,HttpHeaders,SecurityContext,Providers)。但是,我在网络上找到将this注释与其他类型一起使用的代码,例如:@GETpublic String something(@Context HttpServletRequest req) {}是否有可以与此注释一起使用的受支持类型的列表?在执行标准之间,此列表是否会更改?我目前正在试验Jersey,我担心自己写的代码无法移植到其他JAX-RS实现中。
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

铆接的JAX-RS 规范定义了您可以通过注入的所有标准类型@Context。


但是,如果我是您,我将只咨询您选择的提供者的特定文档,以查看可用的内容。


例如,RESTEasy 通过提供这些值@Context。同时,泽西岛提供了这些。显然,由于标准的上下文值,将存在重叠。


查看完整回答
反对 回复 2019-10-10
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

@Context批注可用于注入12个对象。这是它们每个的快速摘要


HttpHeaders-HTTP标头值和参数

UriInfo-URI查询参数和路径变量

SecurityContext-为给定的HTTP请求提供对与安全性有关的数据的访问

请求-允许前提条件请求处理

ServletConfig-ServletConfig

ServletContext-ServletContext

HttpServletRequest-请求的HttpServletRequest实例

HttpServletResponse-HttpServletResponse实例

应用程序,配置和提供程序->提供有关JAX-RS应用程序,配置和提供程序的信息

ResourceContext-提供对资源类实例的访问

所有这些实例都可以注入资源方法中


@Path("/")

public class EndpointResource {


  @GET

  @Produces(MediaType.APPLICATION_JSON)

  public Response getAllHttpHeaders(final @Context HttpHeaders httpHeaders){

      // Code here that uses httpHeaders

  }

}

或作为字段:


@Path("/")

public class EndpointResource {


  private final @Context HttpHeaders httpHeaders;


  @GET

  @Produces(MediaType.APPLICATION_JSON)

  public Response getAllHttpHeaders(){

      // Code here that uses httpHeaders

  }

}


查看完整回答
反对 回复 2019-10-10
  • 3 回答
  • 0 关注
  • 3128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信