Package jakarta.ws.rs

Annotation Type 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
    Author:
    Marek Potociar