javax.ws.rs

## Annotation Type NameBinding

-     @Target(value=ANNOTATION_TYPE)
      @Retention(value=RUNTIME)
      @Documented
      public @interface NameBinding

  Meta-annotation used to create name binding annotations for filters and interceptors.

  Name binding via annotations is only supported as part of the Server API. In name binding, a name-binding annotation is first defined using the `@NameBinding` meta-annotation:

        @Target({ ElementType.TYPE, ElementType.METHOD })
        @Retention(value = RetentionPolicy.RUNTIME)
        @NameBinding
        public @interface Logged { }

  The defined name-binding annotation is then used to decorate a filter or interceptor class (more than one filter or interceptor may be decorated with the same name-binding annotation):

        @Logged
        public class LoggingFilter
                implements ContainerRequestFilter, ContainerResponseFilter {
            ...
        }

  At last, the name-binding annotation is applied to the resource method(s) to which the name-bound JAX-RS provider(s) should be bound to:

        @Path("/")
        public class MyResourceClass {
            @GET
            @Produces("text/plain")
            @Path("{name}")
            @Logged
            public String hello(@PathParam("name") String name) {
                return "Hello " + name;
            }
        }

  A name-binding annotation may also be attached to a custom JAX-RS `Application` subclass. In such case a name-bound JAX-RS provider bound by the annotation will be applied to all `resource and sub-resource methods` in the JAX-RS application:

        @Logged
        @ApplicationPath("myApp")
        public class MyApplication extends javax.ws.rs.core.Application {
            ...
        }

  Since:
    2.0
  Author:
    Santiago Pericas-Geertsen, Marek Potociar

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.