問題タブ [aspect]

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 投票する
0 に答える
53 参照

java - メソッドの可視性をスキップすると、すべてのメソッドがポイントカットされますか?

AspectJ では、メソッドの可視性を指定しない場合、すべてのメソッドが「考慮」されますか?

例:

pointcut timed() : execution(@Timed !static * (@Metrics).*(..)) && this(object);

すべての方法 (パブリック、プライベートなど) がここでアドバイスされていますか?

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

java - Aspect と Transactional の両方が使用されている場合、プロキシ オーバー プロキシですか?

メソッドでトランザクションアノテーションを使用し、同時にアスペクトも使用する場合、これに対してスプリングはどのように動作しますか? トランザクション プロキシ オブジェクト上にアスペクト プロキシを作成しますか? それとも、スプリングは両方のプロキシ オブジェクトのロジックを混同するほど賢いのでしょうか?

ここで私の理解が完全に間違っている場合は、修正してください。

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

java - ポイントカットエンティティのロード/永続JPAアクション?

エンティティがロードまたは永続化されるたびに、エンティティをラップ/ラップ解除したいと思います。JPAリスナーはオブジェクトに対してのみアクションを実行でき、他のオブジェクトと交換できないため、JPAリスナーを使用してそれを行うことができないことを知りました。自然な解決策は、アスペクトを使用することです。しかし、ポイントカットできる特定の方法はありますか? 問題は、ラップ/ラップ解除されるエンティティが別のエンティティのフィールドになる可能性があることです...

編集:

EntityManager はスプリング管理されていないため (なぜですか?)、Spring AOP を使用してこれを行うことはできないことがわかりました-こちらを参照してください。それを機能させるには、EntityManager Bean を明示的に定義する必要がありますが、その投稿では推奨されていません。とにかくそれを行う方法は?一方、作成された EntityManager がアプリケーション管理されていると述べているのはなぜですか? 春の API ドキュメントを参照してください

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

java - spectj-maven-plugin の依存関係が見つかりませんでした

私は、aspectj-maven-plugin を使用した CTW アスペクトに問題があります。次のエラーが表示されます (実行エントリが強調表示されています)。

構成について:

私は何を間違っていますか?このプラグインが jdk を見つけられなかったように見えますか? しかし、なぜ?

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

java - Spring のアスペクト / アドバイザーの初期化順序

Spring のさまざまなアスペクト (より正確には対応するアドバイザー) をどのように初期化するかを構成する方法はありますか? アドバイスの順序について話しているのではなく、アスペクトの初期化について話していることに注意してください。

この質問の背景は、によってアドバイスされるべきであるにAspect A依存するユースケースです。ただし、が最初に初期化され、 の作成が強制されるため、はサービスに適用されません。Service XAspect BAspect AService XAspect B

Service X依存せずに初期化順序を変更するにはどうすればよいですかAspect B(これは目的の順序を強制するための回避策ですが、サービスはその側面に対処する必要はありません...)?

私の問題の全体像が必要な場合は、別の質問があり、これを尋ねるようになりました。

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

spring-security - Spring-Security (または) Spring のみを使用した認可

オーソリゼーションとスプリングセキュリティに関して質問があります。サービスの 1 つ (サービス指向アーキテクチャ環境下) に承認チェックを実装するために、Spring-Security を使用できるかどうかを確認しようとしていました。Spring Security のドキュメントを読んでいるときに、Spring Security が Springの AOP を内部で使用していることをここで読みました。

参照: AspectJ または Spring AOP を使用してメソッド承認を実行することを選択するか、フィルターを使用して Web 要求承認を実行することを選択できます。これらのアプローチは、0、1、2、または 3 つ一緒に使用できます。主流の使用パターンは、サービス層での Spring AOP メソッド呼び出しの承認と組み合わせて、いくつかの Web 要求承認を実行することです。

サービスの実装ではすでに Spring AOP を使用しています。私の場合、RESTful サービスに送信されるリクエストは、承認チェックを実行するために処理する必要があるカスタム ビルドのトークン オブジェクトを運びます。

これに基づいて、単純にSpringを使用してアスペクトを作成し、インバウンドリクエストをキャッチし、関連する(カスタムビルド)トークンを抽出して処理し、結果に基づいてリクエストを続行/拒否できるかどうかを理解したいですか? 通信チャネルが既に HTTPS を使用して保護されている場合、Spring-Security は必要ですか?

ありがとう、

SGSI

0 投票する
0 に答える
1115 参照

java - Spring AspectJ を介して JSF マネージド Bean メソッドをインターセプトする方法

ASpectj を介して JSF マネージド Bean メソッドをインターセプトできません。それを可能にする方法を知っていますか。つまり、Spring は独自のコンテキスト クラス メソッドをインターセプトするだけなのでしょうか?

アスペクト クラス

LoginBean.java

Spring.xml

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

java - コマンドラインを使用して.jarファイル内にあるクラスのメソッドにポイントカットをアタッチする方法は?

私は AOP が初めてです。HookShow.java ファイルにクラスを作成しました。

次に、それをコンパイルし、生成された.classファイルを次を使用して.jarファイルに追加しました。

今、私は HSHOW.jar を持っています。の呼び出しで実行されるポイントカットを持つアスペクトを作成していますshow()。しかし、そのjarファイル内のクラスとメソッドをどのように参照できるかについてはわかりません。以下は私のアスペクトファイルです:

jarファイルのクラス内のメソッドを参照する方法を教えてください。