Package jakarta.ws.rs

Annotation Interface BeanParam


@Target({PARAMETER,METHOD,FIELD}) @Retention(RUNTIME) @Documented public @interface BeanParam
The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class field, property or resource method parameter.

The JAX-RS runtime will instantiate the object and inject all it's fields and properties annotated with either one of the @XxxParam annotation (@PathParam, @FormParam ...) or the @Context annotation. For the POJO classes same instantiation and injection rules apply as in case of instantiation and injection of request-scoped root resource classes.

For example:
 public class MyBean {
   @FormParam("myData")
   private String data;

   @HeaderParam("myHeader")
   private String header;

   @PathParam("id")
   public void setResourceId(String id) {...}

   ...
 }

 @Path("myresources")
 public class MyResources {
   @POST
   @Path("{id}")
   public void post(@BeanParam MyBean myBean) {...}

   ...
 }
 

Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles should only use this annotation on resource method parameters.

Since:
2.0