1

AspectJ によるカスタム アノテーション

カスタム注釈

@Documented
@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface Loggable {

String getString() default "";
boolean print() default true;

}

側面

@Before("execution(@Loggable  * *.*(..))")
public void myBeforeAdvice(JoinPoint jp) {

    System.out.println("Before List");

    Object[] parameterList = jp.getArgs();

    System.out.println("Length=="+ parameterList.length);

    System.out.println("After List");

    //return returnVal;
}

カスタム注釈の使用

@Loggable(getString="Custom", print=true)
public String run(){

    System.out.println("Inside Run Method");

    return "Returning Method Run!";
}

OutPut

Before List

Length==0

After List

Inside Run Method

パラメータに基づいて決定を下すため、カスタム注釈のパラメータを取得するにはどうすればよいですか?i.e print may be true / false

私を更新してください!

4

1 に答える 1

1

before(Loggable l) : call(@Loggable * *.*(..)) && @annotation(l);

注釈ベースのポイントカットについても同様だと思います。

于 2013-10-07T15:14:02.307 に答える