chandu:
私は(もちろんコンパイラの)日食から奇妙な行動を観察し、基本的なプログラムを実行している間、私は、SpringAOPを学んでいます。
私は誤ってポイントカットで別の括弧を追加実行しているとき、私はexpression..surprisingly私はすべてのエラーを取得できませんでした@Pointcut注釈に練習していながら...それは魔法のように動作だということを付け加えました。それも、私はそれがエラーをポップアップし、その式にend..If Iの変更で、他の構文を追加してどのように多くの丸括弧については気にしないです。..
ここで構文エラーが..です
@Pointcut("execution(* com.kish.DAO.*.*(..))))))")
public void forPointcut() {}
私は@Beforeアドバイスのためのポイントカット表現の参照を使用していました。
@Before("forPointcut()")
public void beforeAddAccountant() {
System.out.println(" \n----->>>>> exceuting @Before advice before adding accountant");
}
@Before("forPointcut()")
public void otherLoggers() {
System.out.println("----->>>>> execution @Pointcut references before methods\n");
}
誰も私がここで起こっていただきまし伝えることはできますか?
kriegaex:
はい、できます。AspectJのポイントカットパーサはちょうどここに寛大され、それはそのような単純なようです。AspectJのコンパイラで使用されることになって、私たちは構文エラーをもたらす、より徹底したチェックをそこに持っているためです。スプリングAOPで使用されるときに何バイトコードが生成されないので、しかし、さらなるチェックが解析後に存在しません。最初の余分閉じ括弧だけでダンプされた後の効果は、例えばそのすべてです
execution(* *(..)))))) && !target(java.lang.String)
となり
execution(* *(..))
春AOP。
とにかく正しい構文に固執してみてください。