問題タブ [aspects]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aspectj - パッケージとサブパッケージにアスペクトを適用する
私は AspectJ を使用して、パッケージ org.apache.http、org.apache.http.entity、org.apache.http.impl、org.apache.http.io などのクラスのメソッドにアスペクトを適用しています。
以下のようにアスペクトを使用しましたが、適用されません。
複数のパッケージを指定するために Aspectj の側面で提案されているようにも試しましたが、うまくいきませんでした。私が間違っているところを教えてください。
aop - アスペクトを使用して外部コードへの呼び出しをログに記録すると、例外が発生する
プログラムで呼び出されているすべての外部関数のリストを見つけようとしています。テスト対象のプログラムはパッケージ内にnet.sf.gaeappmanager.google.appengine
あり、外部関数は のパッケージおよびサブパッケージ内にありますorg.apache.http..
。
これを達成するために、私は以下のように側面を書きました:
しかし、この側面は本来あるべきように機能していません。未処理の例外をスローしています。System.out.println("Function of http Package")
なしでのみ使用すると、正常にthisJoinPoint
動作します。
@kriegaex の要求に応じて追加情報を追加
Evosuite ツールで生成されたテスト ケースを使用して PUT を実行しています。最初に、ここにテスト ケースを含めます。
このテスト ケースを (上記の側面で) 実行すると、次の例外が発生します。
アスペクトにthisJoinPointを使用せずに同じテスト ケースを実行すると、次の結果が得られます。
.
私の主な関心事は、側面にthisJoinPointを追加すると例外が発生する理由と、プログラム内のすべての外部関数のリストを取得する方法です。
spring - Spring AOP Aspect 起動時のログ メッセージ
Spring AOPアスペクトの起動時にメッセージを記録する方法は? 私が見る唯一の方法は、傍受されたすべてのメソッドにフラグを指定してチェックすることです。他のオプションはありますか?ありがとう
java - AspectJ Javaが奇妙なエラーをスローする
AspectJ (Spring ではない) を使用してオブザーバー パターンをプログラムに実装しようとしています。追加のオブザーバー メソッドを記述しようとしましたが、コンパイラが文句を言うようです
文句を言うオールトはthis:execution(com.company.domain.EmployeeController.registerTo(*))
エラーは次のとおりです。
それが何を期待しているのか、私には意味がありません。その宣言を別の行に分割したところ、それが括弧の 2 番目の終了時に正確に不平を言っていることがわかりました(com.company.domain.EmployeeController.registerTo(*)--->)<---
。なぜそれが不平を言っているのかわからない
私は、aspectj のバージョンを変更しようとしましたが、何もしません。パラメータを * 以外のものに変更すると、別のバージョンがスローされるだけなので、なぜそれが気に入らないのかわかりません。
メソッドを削除してアスペクトを実行しようとすると、全体が意味をなさず、これをデバッグする方法もわからないため、機能しません。
私はまだ何が起こっているのかを知る必要があります。ここにアスペクト全体を投稿します。おそらく、数日後に原因を突き止めることができるかもしれませんが、すべてを考慮してプログラムが機能しない理由をまだ見つけることができません。
そして、AbstractObserver 部分については、次のようにしています。
ここafter(Subject employee, Observer handler)
では、サブジェクト/オブザーバーを実際に実装するクラスを使用することになっていると思いますが、アスペクトはそれらをそのように見ることを拒否します(実装するメソッドは表示されません)ので、findignに違いがあるかどうかはわかりませんなぜ私はこの問題を抱えているのですか。私が聞いたように、オブザーバーパターンはaspectjを使用してのみ実装でき、それが私が使用しているものです。エラーは意味がありません