1

私はこれでmethod注釈を付けました:

@Around("execution(* it.foo.bar.Flow.*(..))")
public Object profile(ProceedingJoinPoint pjp) {...}

Flow class私は簡単switchenumeration type。私がその行を走ったとき、profile method上記は呼ばれます。これはpjp object私が持っているものです:

execution(int[] it.foo.bar.Flow.$SWITCH_TABLE$it$foo$bar$dataobjects$RequestType())

RequestTypeですenumprofile methodが発生したときに呼び出されないようにしたいenumので、いくつかの実行式を試してみましたが、上記に加えて次の式を使用しても機能しませんでした。

&& !(execution(int[]     it.foo.bar.Flow.$SWITCH_TABLE$it$foo$bar$dataobjects$RequestType()))

私がやろうとしていることを達成することは可能ですか?

4

1 に答える 1

1

メソッドよりもきめ細かいレベルでクラスを作成することはできません。を処理する機能を別のメソッドに抽出し、RequestType enumポイントカット式を調整してそれを回避することができます。

@Around("execution(* it.foo.bar.Flow.*(..)) && !execution(* it.foo.bar.Flow.handleRequestType(..))")
于 2012-12-13T13:59:38.397 に答える