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

2023-09-06 10:43:48 作者:凉年

I'm new to JAX-RS and I'm trying to understand how the @Context annotation is supposed to work.

At the javadoc there is a list of six classes (Application, UriInfo, Request, HttpHeaders, SecurityContext, Providers). However I find code on the web that use the this annotation with other types, for example:

@GET
public String something(@Context HttpServletRequest req) {

}
快速学习 基于注解的 IOC 配置

Is there a list of supported types that can be used with this annotations? Does this list change between implementation of the standard?

I'm currently experimenting with Jersey and I'm worried that I'll write code that cannot be ported to other JAX-RS implementation.

解决方案

The riveting JAX-RS specification defines all the standard types you can inject via @Context.

But if I were you, I would just consult the specific documentation of your chosen provider to see what is available.

For example, RESTEasy provides these values via @Context. Meanwhile, Jersey provides these. Obviously there will be overlap because of the standard context values.