11.9.2. インターセプターを JAX-RS メソッドにバインド
概要
デフォルトでは、登録済みの全インターセプターが、全リクエストに対して呼び出されます。 AcceptedByMethod インターフェースを実装しこの動作を調整するkとができます。
例11.7 インターセプターの例を構築
RESTEasy は
AcceptedByMethod インターフェースを実装するインターセプターに accept() メソッドを実装します。このメソッドが true を返す場合、インターセプターが JAX-RS メソッドの呼び出しチェーンに追加され、True が返されない場合はそのメソッドについては無視されます。
以下の例では、
accept() が @GET アノテーションが JAX-RS メソッドに存在するかを判断します。存在する場合、インターセプターがこのメソッドの呼び出しチェーンに適用されます。
@Provider
@ServerInterceptor
public class MyHeaderDecorator implements MessageBodyWriterInterceptor, AcceptedByMethod {
public boolean accept(Class declaring, Method method) {
return method.isAnnotationPresent(GET.class);
}
public void write(MessageBodyWriterContext context) throws IOException, WebApplicationException
{
context.getHeaders().add("My-Header", "custom");
context.proceed();
}
}