これに簡潔なタイトルを付けるのは難しいです。
とにかく、親クラスがあると想像してください:
public class Shape {
public Dimensions getDimensions() {
// Does some generic stuff.
}
}
getDimensions メソッドをオーバーライドする派生クラスがあります。
public class Circle extends Shape {
public Dimensions getDimensions() {
// Does some stuff.
super.getDimensions();
}
}
ポイントカットをオンにしてアスペクトを作成すると、が呼び出されShape.getDimensions
たときにポイントカットが 2 回ヒットします。Circle.getDimensions
Circle.getDimensions
super.getDimensions
ポイントカットは次のようになります。@Pointcut("execution(* Shape.getDimensions(..))")
宣言する型の名前を確認するためのアドバイス内にハックを追加しました ( を使用JoinPoint.getSignature().getDeclaringType().getName()
)。これを行うためのより良い方法があるに違いないと思います。
ある?
フォーメーションがあまり良くない場合は申し訳ありません。ここで初めて質問します(通常、すでに答えを見つけることができます)。