Package nablarch.fw

Annotation Interface Interceptor


@Documented @Target(ANNOTATION_TYPE) @Retention(RUNTIME) @Published(tag="architect") public @interface Interceptor
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<HttpRequest, HttpResponse, AroundAdvice> {
         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) {
             //......
        }
     }
 }
 
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    InterceptorアノテーションによるHandler.handle(Object, ExecutionContext) へのインターセプトを実現するスタティックメソッドを保持するクラス。
    static class 
    Interceptorの処理内容を実装するクラスの抽象基底クラスとなるリクエストハンドラ。
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    このインターセプタが付与されたメソッドに対して実行される インターセプト処理を実装するクラス。
  • Element Details

    • value

      Class<? extends Interceptor.Impl> value
      このインターセプタが付与されたメソッドに対して実行される インターセプト処理を実装するクラス。
      See Also: