問題タブ [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.

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

c# - C#でプロパティゲッター/セッターをReflectionまたは同様のもの(サードパーティライブラリなし)に置き換えます

たとえば、クラスに含まれるプロパティがあります

私がやりたいのは、次のように、HelloPhraseプロパティに属性を追加することです。

コンストラクター中に、MyCustomAttributeが定義されているClass(Greeter)のプロパティを反映し、プロパティのGet/Setメソッドを匿名メソッド/デリゲートに設定できるようにします。

クラスからPropertyInfoを取得することができましたが、これはGetSetMethod(http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.getsetmethod.aspx)と対応するGetGetMethodのみを公開します。

こことオンラインでいくつかの質問を読みましたが、ある種のアスペクトライブラリを使用しない答えを見つけることができません。

実行時にGet/Setメソッドを設定するためのプロバイダーポインターはありますか?理想的には

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

java - 「after():staticinitialization(*)」の@AspectJ構文

インスタンス化モデル内のpertypeを使用してトレースアスペクトを実装しようとしています。このようにして、タイプごとにクラスごとに1つのロガーを使用できるようになります。

私たちの周りのいくつかの例から、ロガーを初期化するためのこのコードを見つけることができます:

残念ながら、これを@AspectJ構文に完全に変換することはできません(これは私の制御外のプロジェクト要件です)。特に、ロガーをセットアップしてそのコードを1回だけ実行する必要がある部分です。

これは可能ですか?

ありがとう、

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

postsharp - ポストシャープ&クリティカルコードパーツ

アプリケーションのビジネスルールの重要な部分が特定の動作に依存しているが、この動作を明示的にコーディングするとコードが乱雑になると仮定すると、PostSharp(またはその他のアスペクトフレームワーク)を使用してアスペクトにカプセル化することに依存しますか?それは「安全」で「賢明な」オプションですか、それともコードがどのように乱雑になるかに関係なく、動作を明示的にコーディングする方が常に良いですか?そのようなソリューションの保守性はどうですか?

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

exception - Log4netまたはnlogを使用してSpring.NETで例外をログに記録するための最良の方法

Spring.NETでどの方法のログ例外が優先されるのか、そしてその理由を知りたいのですが。私は2つの一般的なシナリオを見つけました。

1.IThrowAdviceを使用します。

スローアドバイスとメソッドAfterThrowingハンドル/ログ例外を作成しました。

Common.Loggin API(Common Loggin API)を使用して、たとえばLog4netをロギング用に構成します。

最後に、busineesレイヤーでオブジェクトのプロキシを作成します。

これが最初のコンセプトです。私が見つけた2つ目は、SpringAspectライブラリの例外処理のアスペクトを使用することです。

2.Spring.NETからの例外の側面

ログ例外のハンドラーを作成したいのですが、このハンドラーはLog4netロガーを使用します。

例外のハンドラー:

次に、このハンドラーを例外ハンドルのアドバイスで使用します。

2番目の方法が良いかどうかはわかりません。多分それは愚かです。

Log4netロガーを使用するようにLogExceptionHandlerを構成することは可能ですか?

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

caching - Groovy および Grails で Spring AOP アスペクトを使用する方法、具体的なキャッシングの例

Grails と Groovy を使用して、大規模な保険契約と請求管理システムを構築しました。すべての「READS」がデータベースからフェッチされるため、パフォーマンスの問題によってサイトの速度が低下していますが、ほとんどのデータは静的であるため、これは必要ありません。Grails レイヤーに単純なキー/値キャッシュを導入したいのですが、既存のコードを cache.get() および cache.set() コードで散らかしたくないので、代わりにアスペクトを使用したいと考えています。

これがメインコントローラーのサンプルです....

キャッシュに関する限り、当面はグローバルスコープのオブジェクトとして利用可能な「キャッシュ」という名前の単純なマップであり、キャッシュ内のオブジェクトはリクエスト URI によってキー付けされると仮定します...

コントローラーに戻ると、Spring AOP を使用して回避したい cache.get()/set() でコードを散らかすだけでは、厄介なコードになってしまいます。私たちは、apsects を使用して、またはよりシンプルでクリーンな実装で次の機能を実現したいと考えています...

cache.get()/set() によるコードの散らかりを回避しながら、Spring AOP または Grails でより単純なものを使用して上記の機能を実現する方法を示す例が必要です。AOP を適切に動作させるために必要な場合は、既存のコントローラーをリファクタリングする提案を歓迎します。

前もって感謝します

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

java - 例外をキャッチして代わりにnullを返すアスペクトを追加する

EntityManagerで通常のDAOオブジェクトにSpringDataJPAを使用することから切り替えたところ、nullを返す代わりに.getSingleResult()がNoResultExceptionをスローすることがわかりました。すべてのDAO関数をTry{}Catch {}で囲み、NoResultExceptionsの代わりにnullを返すアスペクトを追加する方法はありますか?

または、DAOオブジェクトをすべて手動で囲むことなく、例外ではなくnullを返すように強制する他の方法はありますか?

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

spring - @Configurable(Mavenを使用)を使用したjar依存関係のオブジェクトのSpring 3コンパイル時間織りの問題

あまりにも長い間グーグルでこれに取り組んできました。さまざまなスタックオーバーフローの投稿も調べましたが、ここで何が起こっているのかまだわかりません。

まず、私が欲しいもの:

Web プロジェクトで依存関係として使用される持続性 jar があります。この永続化 jar 内で、daos は Web プロジェクトの spring 構成を使用して適切にセットアップされます。ただし、今やりたいことは、基本クラス (抽象) にあります。文字列にプロパティ セットを注入できるようにしたいのですが、この抽象クラスを拡張するクラスは、Spring を介して直接制御されません (たとえば、new を介してインスタンス化されます)。 MyImp().)

収集したすべてのものから、 @Configurableを使用して活用する必要があります。

奇妙なことに、コードはすべてコンパイルされます (アスペクトプラグインを使用する Maven を使用)。@Configurable 抽象クラスを拡張するオブジェクトへの呼び出しが「ブラックホール」に陥るように見えるため、いくつかのウィービングが行われている必要があると思います-まだエラーはありません古い skool System.out.print ステートメントを介してシステムに出力することさえできませんか??? 本当に奇妙です。

以下は、私がどのようにセットアップしたかに関する関連情報だと思います...(明らかにすべてを表示しているわけではありません):

Web プロジェクトの春の設定:

上記の Web プロジェクト (MyAbstractClass とその子孫を保持する) で使用される jar には XML がありません。さまざまなファイルが MyAbstractClass を拡張し、new を介してアプリケーション内で作成されます。 MyImp imp = new MyImp(); imp.bar();

MyAbstractClass 関連情報:

後で @Autowiring をいじったり、@Value を使ったりすることはできますが (とにかく最初に試したのはこれです)、今のところ、ウィービングが正しく機能しているかどうかさえわかりません。おそらく問題は、持続性 jar が最初に maven を介して (ウィービングを使用して) コンパイルされることですが、web プロジェクトに基づいて後で xlsDir のセッターが何であるかがわからないのでしょうか? しかし、なぜ bar() の呼び出しが消えてしまうのか、それは説明できません。何かが起こっているのです。

両方のプロジェクトで、Spring Roo の pom で見たものに基づいてコンパイルするように maven をセットアップしました (この pom に本当に必要なものをオンラインで特定するのは非常に困難で、maven の側面が spring で織り込まれています)。

関連する pom 情報は次のとおりです (Spring Roo のコメントを以下に残しました - それらは私のものではありません)。

どんな助けでも大歓迎です。私はすぐにあきらめようとしており、プロパティファイルを静的ブロックにロードして、それで完了です:)

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

c# - C# でアスペクトを使い始める方法

プログラミング言語の側面について聞いたことがありますが、それについてはかなり熱心でした。しかし、私はそれらを始める方法がわかりません。そして、皆さんが正しい方向に設定されるかもしれないと思いました.

0 投票する
4 に答える
2330 参照

java - serialVersionUIDフィールドが存在するのはなぜですか?

インターフェースの立ち上げから、Serializableこのフィールドをすべてのクラスに組み込む必要がある理由に戸惑いました。このインターフェイスにはクラスをマークするための一意の識別子が必要であることを理解していますが、実行時にこれを生成できないのはなぜですか。たとえば、完全修飾クラス名のMD5ハッシュ、またはまれに重複を処理するために使用される同様の方法論を使用して生成できます(これは、とにかくIDを生成するように求められたときにeclipseが行うことです)。

それで、私が求めているのは(この投稿は標準ライブラリに対する単なる暴言ではありません)、フレームワークでシリアル化フィールドがどのように使用されているかということです。

MD5ハッシュを使用してserialVersionUIDフィールドを追加し、APIで受け入れられる方法で衝突を処理できるAspect(AspectJまたは他の言語で)を作成しようとしているため、知りたい理由。

うまくいけば結果を投稿します。