問題タブ [aop]
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.
architecture - 名前空間の構成 - AOP バリデーター
私たちの開発フレームワークでは、パラメーターの検証にアスペクトを使い始めました。それはうまく機能し、パブリック メソッドの前半に検証コードを散らかさないことを楽しんでいます。
私が疑問に思っているのは、名前空間構造のどこにパラメーターの検証を配置するかについて、誰かが推奨事項を持っているかどうかです。これはトップ レベルの機能であるため、.NET Framework で System が使用される方法と同じように、トップ レベルの製品名前空間に配置する必要があると考えています。このような機能が追加されるとコア アセンブリが肥大化するのではないかと心配しています。
現状では、次のようなものがあります。
[会社].[製品].ParameterValidators
この例では、ParameterValidators は機能を含むクラス (アスペクト) の名前です。
これとは別に、構造的な配置に関連して既存のコードベースに側面を組み込むためのさらなる推奨事項があれば、私は感謝します.
java - Spring単体テストを実行しているAOPの問題
AOP の JDK プロキシを使用するように構成された Spring Web アプリケーションがあります。AOP アノテーション (@Transactional など) は、実装クラスではなくインターフェイスで宣言されます。
アプリケーション自体は正常に動作しますが、単体テストを実行すると、AOP 機能に (JDK プロキシではなく) CGLIB を使用しようとしているようです。これにより、テストが失敗します。以下にスタック トレースを追加しました。
テストの実行時に CGLIB が使用されている理由がわかりません。なぜなら、Spring の構成はアプリケーションの実行時とほぼ同じだからです。おそらく重要な違いの 1 つは、テスト構成がJTA トランザクション マネージャーの代わりにDataSourceTransactionManagerを使用することです。テスト クラス自体はすべてAbstractJUnit4SpringContextTestsを拡張しますが、このクラスは何らかの形で CGLIB を使用するように配線されているのでしょうか?
編集: コメンテーターの 1 人が、Spring 構成を投稿するように要求しました。以下に省略形で示します (つまり、無関係な Bean と XML 名前空間は省略されています)。
spring-servlet.xml
applicationContext-service.xml
applicationContext-test.xmlこれは、単体テストの実行時にのみ含まれます。その目的は、他の構成ファイルで宣言されている Bean の一部を上書きすることです。
c# - Adding an OnException attribute using PostSharp
I am adventuring into some AOP and it seems with .NET PostSharp is the way to go.
I want to do some simple logging to the db when an exception occurs. However I am finding it difficult to find any real solid examples of using PostSharp beyond the basics. I tried the following:
And then attaching a [LogException]
attribute to a method
But I get a compile error:
I have to confess I am very new to this, but it seems like an interesting concept, I think i just need to be pointed in the right direction
c# - Microsoft Compact Framework 3.5 での AoP
Postsharp で試してみましたが、現在の実装は 2.0 をターゲットにしており、機能させるのが難しくなっています。独自の AoP 実装を展開する必要がありますか (ここでは、非常に基本的で実用的な実装を考えています)。
または、私が知らない代替手段がありますか?
c# - 使用統計の監視-それはどのように行われますか?
Windows、Firefox、またはGoogle Chromeはすべて、使用統計を監視し、クラッシュレポートが送信されたことを分析します。同じ機能をアプリケーションに実装することを考えています。
もちろん、大量のロギングステートメントをアプリケーションに散らかすのは簡単ですが、これは、コードに関数内の横断的関心事が多すぎないようにするために避けたいアプローチです。AOPを使ってそれを行うことを考えていますが、その前に、他の人がこの機能を最初にどのように実装するかを知りたいと思います。
誰か提案がありますか?
明確化:私はデスクトップアプリケーションに取り組んでおり、RDBMSは含まれていません
.net - ロギング目的のイベントのキャプチャ
アプリケーションが起動されるとき、特定のメソッドがいつ起動されるかを知る必要があります。属性と AOP テクニックを使用してこれを行う方法は?
最も簡単な方法は、次のようにイベント メソッドで時間を記録することです。
日時をデータベースに保存します。しかし、これを行うと、メソッドに多くの横断的な機能が残り、メンテナンス作業が難しくなるため、これは絶対に望ましくありません。この問題を解決するために属性を使用することを考えています。PostSharp は、メソッド呼び出しをインターセプトし、必要な前処理と後処理を実行できるため、ここでは良い候補のようです。しかし、明らかに欠けていることの 1 つは、大量のカスタム コードを書かないとイベントを処理できないことです。
イベントを自然に処理できるフレームワークはありますか?
.net - DBトランザクションで単体テストを自動的にラップしますか?
[編集 (Haren):複製]
NUnit 統合テストを DB トランザクションで自動的にラップして、テストによって行われた変更がテストの終了時に自動的にロールバックされるようにする方法を探しています。理想的には、特定のテスト メソッドを、テストの開始時に NUnit にトランザクションを作成させ、テストの終了時にロールバックさせるカスタム属性で装飾します... 属性を記述できますが、どこに追加すればよいかわかりませんそれのチェック。
テスト DB のサイズは 3 GB であるため、各テストの開始時に復元することはできません。各テストの本文で手動でトランザクションを作成できることはわかっていますが、もっとエレガントなものを探しています。
おそらく、これを実行できる IL 書き換えツール (おそらく AOP フレームワーク) があるでしょうか? 誰にも提案はありますか?
.net - Postsharp の運用経験がある人はいますか?
実稼働環境でPostsharp AOP フレームワークを使用した人はいますか? 落とし穴はありますか?ロギングなどを行うために、Postsharp を Log4Net と組み合わせて使用できますか?
Web Apps や Log4Net で Postsharp を使用するためのチュートリアルは高く評価されます。
spring - Spring AOP: アスペクトを通じてプロパティを適用する
ここでの目的は、リソースの難読化されたパスワードを処理することです。
setPassword の呼び出しをインターセプトし、引数を復号化する Advisor があります。
次のようなテンプレートを設定しました。
それを使用する正確な構文については不明です。最も明白な方法は次のとおりです。
しかし、パスワード プロパティが内部 Bean に適用されるため、これは正しく機能しません。つまり、アドバイザーはその作業を終了しません。
さて、これはどうですか:
いいえ。Spring は、ProxyFactoryBean にパスワード プロパティがないことを訴えます。もちろん、そうではありません。password プロパティを持つものは、ファクトリ Beanが作成するものです。
ビューラー?
spring - aopを使用した場合のパフォーマンスへの影響
アプリケーションの横断的側面(現時点ではセキュリティとキャッシング)にSpringaopを使用し始めました。
私のマネージャーは、このテクノロジーのパフォーマンスへの影響を心配していますが、そのメリットは十分に理解しています。
私の質問ですが、aop(特にSpring aop)の使用によって引き起こされるパフォーマンスの問題に遭遇しましたか?