問題タブ [pointcut]

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.

0 投票する
1 に答える
5442 参照

aop - AspectJのポイントカットとアドバイス

特定のカテゴリに属さないアイテムが追加されている場合は、そのような追加が許可および禁止されている3つを除いて、警告を発行するポリシーを適用する必要があります。

これまでのところ、アイテムを見つけて警告を出すことはできますが、追加を停止する方法がわかりません。

たとえば

許可されるカテゴリ靴と靴下

しかし、野菜アイテムをインベントリに追加しようとすると、「カテゴリは許可されていません../nアイテムはインベントリに追加されません」という警告が表示されます.....次に次のアイテムに進みます....

これは私がこれまでに書いたものです.....

0 投票する
1 に答える
113 参照

aop - 新しいアイテムを追加するためのポリシー施行-ASPECTJ

特定のカテゴリに属さないアイテムが追加されている場合は、そのような追加が許可および禁止されている3つを除いて、警告を発行するポリシーを適用する必要があります。

これまでのところ、アイテムを見つけて警告を出すことはできますが、追加を停止する方法がわかりません。

許可されるカテゴリ靴と靴下

しかし、野菜アイテムをインベントリに追加しようとすると、「カテゴリは許可されていません../nアイテムはインベントリに追加されません」という警告が表示されます.....次に次のアイテムに進みます....

これは私がこれまでに書いたものです.....

私は周りのアドバイスを正しく使用していないことを知っています...

0 投票する
1 に答える
2849 参照

java - インターフェイスではなく実装クラスにアスペクトを追加する

いくつかのインターフェースを実装するクラスがあります。クラスの特定のインターフェイスではなく、クラス全体にポイントカットを追加したいと思います。

Spring AOPでどのように行うことができますか?非インターフェースクラスにアスペクトを適用することは可能ですか?

0 投票する
3 に答える
5945 参照

java - AspectJ set-pointcut で以前の値を公開する

フィールド値の変更を検出する必要があります。以前の値と新しい値を比較したい。フィールド名またはそのタイプがわかりません。(詳細な背景はこちら。)指定されたクラスのサンプル:

私はこの側面を持っています:

問題は、argsがフィールドの現在の値ではなく、フィールド セットのジョイント ポイントで渡された値を公開していることです。このプレゼンテーションの 27 ページで、次のことがわかりました。

しかし、私のコード(注釈)ではまったくコンパイルされていないようです。私が試したとき:

それから私は得ました:

これはリフレクションを使用した実用的なソリューションです:

これは、リフレクションよりも優れたパフォーマンスのソリューションです (私は思います)。ただし、まだ大きなオーバーヘッドがあります (追加のフィールド、および各ターゲットへのアスペクト インスタンスのバインディング)。

そして、ここに親の宣言を使用したソリューションがあります:

3 つの選択肢があることを再確認します。

  • フィールド値マップを使用した pertarget/perthis の周りのセット
  • リフレクション付きのシングルトンアラウンドセット
  • 宣言された親とフィールド値マップを使用したシングルトン アラウンド セット

最善の解決策は、ポイントカットから直接前の値を取得することです (リフレクションやポイントカット間のフィールド値の記憶なし)。出来ますか?そうでない場合、どの代替案が最高のパフォーマンスを発揮しますか?

その他の注意事項

set pointcut の以前の値に関するこの議論を見つけましたが、かなり古いものです。

このメカニズムはすべて、JSF セッション スコープの Bean の内部状態の変化を検出するためのものです - Google App Engine の修正。通常、このような Bean には 100 未満のフィールドがあります。すべてが 1 つのスレッドから呼び出されます。

0 投票する
2 に答える
12712 参照

spring - Spring AOP ポイントカットの形式が正しくありません

スレッド「メイン」での例外 org.springframework.beans.factory.BeanCreationException: 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0' という名前の Bean の作成中にエラーが発生しました: Bean のインスタンス化に失敗しました。ネストされた例外は org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [org.springframework.aop.aspectj.AspectJPointcutAdvisor]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.IllegalArgumentException: Pointcut is not well-formed: Expect 'name pattern' at character position 49 execution(*com.idol.performers.Performer.perform(..)

ポイントカットの何が問題になっていますか? 本にはこう書いてある

私のxml:

0 投票する
3 に答える
16241 参照

java - アノテーションでインターフェースメソッドをオーバーライドするメソッドの @AspectJ ポイントカット

インターフェイスメソッドをアノテーションでオーバーライドするメソッドの実行に適用されるアスペクトポイントカットを書くにはどうすればよいですか? 例えば:

ポイントカットは、注釈自体がexecution(@MyAnnotation * *.*(..))含まれている場合にのみ一致します。B.method()これを行う別の方法はありますか?

0 投票する
1 に答える
3742 参照

java - Spring-AOP ポイントカットと継承に関する明確化

次の例のクラスがmy.package...

そして、次のSpring-AOPポイントカット...

Bar のインスタンスで上記のポイントカットに適用されたアドバイスの結果は何ですか? 特に...

ポイントカットが継承とどのように相互作用するかについての基本的な真実が欠けていると思うので、内部の説明/ドキュメントはおそらく大いに役立つでしょう。

0 投票する
1 に答える
20541 参照

java - SpringAOP-アノテーション付きのすべてのメソッドのポイントカット

私はポイントカットを定義しようとしています。これは、(すなわち)で注釈が付けられたすべてのメソッドをキャッチし@CatchThisます。これは私自身の注釈です。

さらに、タイプのメソッドの最初の引数にアクセスしたいと思いますLong。他の議論もあるかもしれませんが、私はそれらを気にしません。


編集

これは私が今持っているものです。私が知らないのは、で注釈が付けられたメソッドの最初のパラメーターを渡す方法@CatchThisです。

0 投票する
2 に答える
1099 参照

spring - AOP ポイントカット式をチェックする

のようにポイントカット式をチェックする必要があります。私はこの豆を持っています:

私の aop ポイントカット式では、Bean プロパティ「logLvl」の値を確認するためにチェックを行う必要があります。

式が機能しません...何を変更すればこのチェックを行うことができますか?