問題タブ [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.
java - 自分の例外の代わりにUndeclaredThrowableExceptionを取得する
私は次のコードを持っています
権限のないユーザーを使用すると、のjava.lang.reflect.UndeclaredThrowableException
代わりに取得しAccessException
ます。
java - AspectJで使用するためのアノテーションパラメータの値を取得するにはどうすればよいですか?
この方法を検討してください。
このポイントカットは、メソッドに@Access
アノテーションがある場合、基本的に一致します。
しかしrights
、特定のアクセスレベルを格納する@Accessのフィールドにアクセスして、それを操作できるようにするにはどうすればよいですか?
java - メソッド名がAspectJの既存の注釈付きメソッドに基づいているクラスにメソッドを追加する方法は?
次のコードを検討してください。
現在、このメソッドにはアクセス チェックが組み込まれてcurrentUser
おり、データベース コマンドを実行するために必要な権限があるかどうかを確認します (権限がない場合は例外をスローします)。
新しいメソッドを作成するには、AspectJ ファイルに何を追加する必要がありますか?
同じアクセス チェックを使用してクラスに追加されますが、コマンドは実行されませんか?
この使用例は、getter/setter をフィールドに追加する場合と似ているようです。
java - アノテーションを使用した Spring 3 の AOP
Aspect を Spring 3 とアノテーションで動作させようとしています。
XML:
アスペクトをテストするMYテスト:
}
このコードでは、「Inside Attribute call ...」のみが表示されますが、アスペクトからは何も表示されません。ガイドしてください。
新しいオブジェクト (コンポーネント) を作成し、Junit テスト クラスに注入することで、これを機能させました。
java - 私の例外ログの側面は、同じ例外を 2 回ログに記録しています
私はスタンドアロン アプリケーションを作成しています。このアプリケーションは、起動して長時間放置する必要があります。例外によって停止するのではなく、サポート担当者が何が起こったのかを把握して続行できるように、十分な情報を含めて例外をログに記録する必要があります。
その結果、各例外は実行時例外にラップされ、スローされて、アプリケーションの別の部分によってログに記録されます。aop:config タグを使用して、アプリケーションの残りの部分によってスローされたランタイム例外をログに記録するアスペクトを作成しています。その後、例外は UncaughtExceptionHandler までコール スタックを上に移動し、例外をサイレントに終了します。ただし、同じ例外が繰り返しキャッチされ、ログに記録されます (各例外は個別のスレッドによって書き込まれ、個別のログ ファイルに記録されます)。デバッガーでは、両方の例外の ID が同じです。
私のapplicationContextはこれの基本です:
UncaughtExceptionHandler は、少なくとも私がそれを機能させるまでは、同様に基本的です:
ポイントカットを 1 つのパッケージに制限し、そのパッケージ (例外ログが含まれているパッケージではない) から例外をスローして実験しましたが、それでも 2 回ログに記録されます。この考えに何か根本的な間違いはありますか? アドバイスをいただければ幸いです。
java - 春に条件付き結合点を使用する
春に条件付き結合ポイントを使用する方法
私の要件では、メソッド名がinsertの場合、またはメソッド名がupdateの場合、またはメソッド名がdeleteの場合、およびメソッドに正確に3つの引数が必要な場合、ポイントカットを適用する 必要があります
これは私が書いたコードでした、
以下の行に何か問題があります。式の形式が正しくないというエラーが表示されます。
spring - 複数のパッケージに単一のポイントカットを指定する方法
spring mvc ベースのアプリケーションでアクティビティをログに記録するために Aspect を使用しています。@controllerアノテーションを使用して、アプリケーション内のコントローラーを定義しています。私は2つの異なるパッケージに2つの異なるコントローラーを持っています
- com.package1 にはコントローラー 1 クラスが含まれています。名前を AController にしましょう。
- com.package2 にはコントローラー 2 クラスが含まれています。名前を BController としましょう。
を使用して、コントローラーの特定のパッケージにアスペクトを適用できます
私の質問は、 expression(* package1. . . (..))**で複数の異なるパッケージを指定する方法です。
現在、パッケージごとに 1 つの個別のポイントカットを宣言しており、側面では、各ポイントカットに対して 1 つの個別aop:before
のaop:after
エントリを宣言しています。しかし、これは複数のパッケージのポイントカットを定義する理想的な方法だと思います。
javascript - 何かがアスペクトされている-Javascriptで指向
したがって、他の関数の前後に関数を追加するためにこのコードを作成しましたが、それを行うためのより良い方法を見つけることができませんでした。eval()を使用する必要があり、それは実際には良い習慣ではありません。最初、私は次のようなことをしようとしました:
しかし、関数自体を変更できないため、機能しませんでした。だから私はこれをしました:
オブジェクトなどを操作したくないので、すでに宣言されている関数の前後にコードを追加したいだけです
c# - アスペクト クラス コードは、Rapier-LOOM のターゲット クラス コードと織り合わせることができません
「C# Visual Studio 2008.net を使用して」アスペクト クラスとターゲット クラスを作成しましたが、アプリケーションを実行してそれらを織り交ぜるたびに、ターゲット クラスのみが実行されましたが、アスペクト クラスを実行できませんでした。レイピア ルームへの参照を添付しようとしました。 rapier-loom をアンインストールして再インストールしようとしましたが、同じ問題が発生します....何が問題なのですか?
これはアスペクトクラスです:
これは適用方法です:
ターゲット クラスは次のとおりです。
java - アスペクトとしてのスイングパネル/フレームのレイアウトコンポーネント
Swingアプリケーション用に構築したフレームワークを改善することを検討していました。春を持ち込んで、側面を紹介したいと思いました。私は春と側面の両方に不慣れです。疑問に思っていたのですが、コンポーネントをアスペクトとしてレイアウトすると言うのは良い習慣ですか?例えば:
以下は、典型的なスイングパネルでの私のクラスです。
layoutComponentsの呼び出しを削除し、それをSpring構成ファイルのアスペクトとして適用するかどうか疑問に思いました。「レイアウト」を実行する別のクラスを用意し、それをPanelクラスのレイアウトではなくアスペクトとして適用します。これは、アスペクトが使用される種類のシナリオですか?