5

spring-aop を使用してアノテーション付きメソッドをインターセプトする必要があります。私はすでにインターセプターを持っています。それは AOP Alliance の MethodInterceptor を実装しています。

コードは次のとおりです。

@Configuration
public class MyConfiguration {

    // ...

    @Bean
    public MyInterceptor myInterceptor() {
      return new MyInterceptor();
    }
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    // ...
}
public class MyInterceptor implements MethodInterceptor {

    // ...

    @Override
    public Object invoke(final MethodInvocation invocation) throws Throwable {
        //does some stuff
    }
}

私が読んでいたことから、以前は @SpringAdvice アノテーションを使用して、インターセプターが何かをインターセプトするタイミングを指定できましたが、それはもはや存在しません。

誰でも私を助けることができますか?

どうもありがとう!

ルーカス

4

2 に答える 2

2

誰かがこれに興味を持っている場合...どうやらこれはできません。Java のみを (XML クラスを使用せずに) 使用するには、AspectJ と Spring を @aspect アノテーションと共に使用する必要があります。

これがコードの最終的な方法です:

@Aspect
public class MyInterceptor {

    @Pointcut(value = "execution(* *(..))")
    public void anyMethod() {
       // Pointcut for intercepting ANY method.
    }

    @Around("anyMethod() && @annotation(myAnnotation)")
    public Object invoke(final ProceedingJoinPoint pjp, final MyAnnotation myAnnotation) throws Throwable {
        //does some stuff
        ...
    }
}

他の誰かが何か違うことを見つけたら、遠慮なく投稿してください!

よろしく、

ルーカス

于 2012-12-17T13:59:33.720 に答える