JAX-RS 2.0 defines multiple ways using which server side filters and interceptors can be bound to their target components.
- Global Binding
- Named Binding
- Dynamic Binding
By default, JAX-RS filters and interceptors are bound to all the methods of resource classes in an application. That is, both request (pre and post) and response filters will be invoked whenever any resource method is invoked in response to a HTTP request by the client. This convention can be overridden using named binding or dynamic binding.
Filters and interceptors scoping can be handled in a fine-grained manner (based on per resource class/method)
Note: If it is applied to a class, the filter/interceptor will be bound to all its resource methods
JAX-RS provides the DynamicFeature interface to help bind filters and interceptors dynamically at runtime. They can be used in tandem with the more static way of binding made possible using@NamedBinding
The injected instance of the ResourceInfo interface helps you choose the resource method in dynamic fashion by exposing various methods and the FeatureContext interface allows us to register the filter or interceptor once the resource method has been selected.
For more on JAX-RS 2.0 …