Handler.handle(Object, ExecutionContext)
メソッドに対するインターセプタに付与する
メタアノテーション。
インターセプタを作成するには、このメタアノテーションを付与したアノテーションを作成し、
Interceptor
の属性には、インターセプト処理を実装するクラスを指定する。
この実装クラスは、
Interceptor.Impl
を継承して作成する。
以下は、インターセプタ"@AroundAdvice"の実装例である。
@Target
(ElementType.METHOD)
@Retention
(RetentionPolicy.RUNTIME)
@Interceptor
(AroundAdvice.Impl.class)
public @interface
AroundAdvice {
public static class Impl extends Interceptor.Impl {
public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
doBeforeAdvice(req, ctx);
HttpResponse res = getOriginalHandler().handle(req, ctx);
doAfterAdvice(req, ctx);
return res;
}
void doBeforeAdvice(HttpRequest req, ExecutionContext ctx) {
//......
}
void doAfterAdvice(HttpRequest req, ExecutionContext ctx) {
//......
}
}
}