問題タブ [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.
.net - アスペクト指向プログラミングに関するヘルプと情報
私はアスペクト指向プログラミングのアイデアに不慣れですが、ロギングやレポートなどを処理するためにプロジェクトでそれを使用するアイデアを探求したいと思います。この目的のために、いくつか質問があります。
- これらの限られた目的のために、わざわざAOPのこのパスを探索する必要がありますか?
- AOPをサポートする.NETFrameworkにはどのようなものがありますか?
- これらのフレームワークのどれが流暢なインターフェースをサポートしていますか(私はXML構成が嫌いです):)
java - OSGi を使用しているときにバイトコード操作を行うことは可能ですか?
私はアプリケーションサーバーを作成していますが、その中でいくつかのバイトコード操作を使用する必要があります (例:で注釈が付けられたクラスにカスタムequals
とメソッドを挿入する)。ここで、 ASMを使用してバイトコード変換を行う Java エージェント ( -javaagentオプション) をJVM に与えます。hashCode
@Entity
OSGiの使用を検討していますが、必要なバイトコード操作を実行できるかどうかはわかりません。
- OSGi を使用しているときにバイトコード操作を行うことは可能ですか? どのように?
- バンドルが動作するために何らかのバイトコード操作が必要であることを宣言することは可能ですか? たとえば、アプリケーション サーバーでは、独自のコア クラスの一部を操作する必要があります。
- 他のバンドルが何らかのバイトコード操作を必要とすることを、そのバンドルが知らずに指定することは可能ですか? たとえば、サーバー上で実行されるすべてのアプリケーションは操作する必要がありますが、アプリケーションはそれを知る必要はありません。
- バンドルが依存するすべてのバンドルをバイトコードで操作する必要があることを宣言することは可能ですか?
@Entity
これにより、アノテーションを含む API バンドルに依存するすべての人を操作する必要があることを簡単に宣言できます。
spring - 動的実装によるSpringの導入
Spring フレームワークを使用して、クラス (C と呼びましょう) の特定のインターフェイス (I と呼びましょう) を動的に実装しようとしています。Spring では、これをイントロダクション(他の言語では mixin) と呼びます。コンパイル時に C は I を実装しません。@DeclareParents アノテーションを使用すると、AspectJ 構文で実行できます。
問題は、I の実際の実装 (IImpl と呼びましょう) がスタンドアロン (コンテキストに依存しない) であることです。注釈では IImpl クラス名のみを指定する必要があります。私が達成したいのは、何らかの方法で規定されている実装です。たとえば、IImpl インスタンスにパラメーター (たとえば、それを囲む C インスタンス) を提供して、CI のどのインスタンスを導入するかによって IImpl のロジックが異なるようにしたいと考えています。IImpl インスタンスと導入された C インスタンスの間の依存関係を設定する何らかの方法が必要です。
現在、私はそれを行う方法を見つけることができません。何か案は?
ありがとう。
nhibernate - NHibernate を使用して Unity インターセプションでプロキシから実際のインスタンスを取得する
Unity を使用して、プラグ可能なアーキテクチャの型を動的に解決しています。また、インターセプトを使用して、AOP を介して ( ValidationAspectsを使用して) ビジネス ルールの検証を適用しています。最後に、NHibernate を ORM として使用してドメイン オブジェクトを保持しています。
AOP が機能するためにはVirtualMethodInterceptor
、インターフェイス インターセプトが NHibernate では機能しないため、 を使用します。ISession
リポジトリ操作用のインターフェースと実際の型の間のキャストを処理するファサードがあります。
NHibernate を介してフェッチされたグラフ内のすべてのオブジェクトが AOP に対して適切にプロキシされるようにするために、NHIInterceptor
実装をInstantiate()
作成し、メソッドをオーバーライドしましたnew()
。次にContainer.Resolve()
、検証が挿入されたプロキシ化されたオブジェクトを取得し、これを NH に返して入力します。これは正常に動作します。
問題は、セッション フラッシュが発生したときに発生します。NHibernate は、グラフに表示されるオブジェクトが実際の型ではなくプロキシ型であるため、動揺します。私たちがマッピングしている方法 (すべてプロパティ経由、すべて仮想) NH は、型チェックをオーバーライドできれば、必要なすべての値をプロキシ経由で取得できるはずです。
私が知る必要があるのは、Unity によって作成され、Interception が有効になっている透過的にプロキシされたオブジェクトが与えられた場合、a) プロキシしている「実際の」インスタンスへの直接参照を取得する方法、または b) NH をオーバーライドして処理するように指示する方法はありますか?実行時に動的に、既知のマップされた型であるかのように、プロキシ型のオブジェクト?
aop - AOP を使用して循環参照を検出したことのある人はいますか?
わからないので、CircularReferenceException をスローできますか?
wcf - WCFとUnityでインターセプトを使用する方法
Unityコンテナ内でホストされるように設定されたWCFサービスがあります。このコンテナを使用してメソッドのインターセプトを実行するつもりでした。問題は、インターセプターを発射させることができないことです...
まず、インターセプター属性とハンドラーの定義を次に示します。
私のホストでは、インターセプトを使用しないように構成しようとしました...ヘルプ!!!!
私はここで何が間違っているのですか?
java - データベースのトランザクション管理に AOP を使用しますか?
少し前に、Spring AOPを使用してトランザクショナルなメソッドを定義するアプリケーションを作成しました。私は今、これがどれほど素晴らしいアイデアであったかについて考え直しています。私はマイナーなリファクタリング (メソッド シグネチャの変更など) の後に数回ヒットしましたが、これはもちろん、実際に問題が発生するまで明らかになりません (そして、論理的に一貫性のないデータベースがあります)。
だから私はいくつかのことに興味があります:
- 他の人は明示的なトランザクション管理に戻ることを決めましたか (例:
@Transactional
注釈を介して)? - 何かが「壊れている」かどうかを識別するのに役立つ、ビルド プロセスの一部として使用できる便利なツールはありますか?
- 人々が AOP を使用してトランザクションを管理している場合、私が犯した間違いを回避するためにどのような手順を踏んでいますか?
私は IntelliJ IDEA を使用しています。これにより、装飾されたメソッドを参照できXML
、メソッド名の変更とともに Spring 構成をリファクタリングできますが、これは必ずしも十分ではありません (たとえば、間違った場所のメソッドにパラメーターを追加すると、アスペクトが起動するかどうかに影響する可能性があります)。
c++ - 完全なリファクタリングなしで既存の C++ プログラムで (一部の) AOP 概念を使用することは可能ですか?
私は現在 AOP について読んでおり、コードで (いくつかの) AOP のアイデアとアプローチを使用したいと考えています。MSVS 2005 環境だけで、サードパーティの拡張機能はありません。では、既存のコードを完全にリファクタリングしなくても (2 年前のプロジェクト x 5 人のプログラマー)、日常業務で AOP の概念を活用することは可能でしょうか?
.net - .Net での AOP の最適な実装は何ですか?
C#、VB.net には多くの AOP 実装があります。これは AOP 実装の一部です。
- ポストシャープ
- Castle DynamicProxy
- リンフー
- LOOM.NET
- アスペクト.NET
- Enterprise Library 3.0 ポリシー インジェクション アプリケーション ブロック
- アスペクトDNG
- ドットスペクト ( .SPECT )
- その機能の一部としてのSpring.NET Framework
- ウィッカとPhx.Morph
- .NET の AOSD ソリューションに関する徹底的な分析は、Twente University から入手できます。
- Seasar.NET
- 側面#
- Puzzle.NAspect
- 作成*
- セットポイント
- NConcern .NET AOP フレームワーク
- ...
.Net での AOP の最適な実装は何ですか? 何を使えばいいですか?