問題タブ [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.
design-patterns - ファサードデザインパターンの欠点は何ですか?
…そして、アスペクト指向プログラミングを使用してそれらをどのように克服できますか?
jpa - @PrePersist および @PreUpdate と同等の AspectJ の監査ユース ケースの作成を支援する
JPA には、CRUD 操作の前に操作を許可する @PrePersist および @PreUpdate アノテーションがあります。これに相当する ApsectJ を見つけようとしています。
私のユース ケースは、1 つのチームによって構築された JPA アプリケーションであり、元のエンティティにライフサイクル リスナーを追加せずに、発生する各 Pre-Persist および Pre-Update に監査アスペクトを追加したいと考えています。
java - JPA およびデータベースの Flex フィールド
「フレックス フィールド」とは、顧客サイトのテーブルを変更してテーブルに追加の列を追加し、そのテーブルのエンティティに関するカスタム情報を保持するための用語です。jpa、特に eclipselink でこのメカニズムをサポートしている人がいるかどうか疑問に思っていました。
これらの顧客が指定したフィールドの値に基づいてベース行をフィルター処理できるため、これを行う必要があります。関連テーブルにこれらのフィールドがあると、この補助テーブルへの複数のエイリアス結合が発生します。
明らかなアプローチ (少なくとも私にはそう思われる) は、新しいフィールドをエンティティ オブジェクトに注入するアスペクトを定義してから、動的なウィービングを実行することです。
誰かがこれを行ったのか、私が見ていない問題や他のアプローチに関する提案があるかどうか疑問に思っていました.
ruby - Ruby でのアスペクト指向プログラミング
AOP を Ruby に追加するためのフレームワークは何ですか?
java - トレース ログに注釈を使用する
私は、多くのトレース ログを作成するポリシーを持つ会社のコードベースで作業してきました。したがって、ほとんどすべてのメソッドには、次のように始まるコードがあります。
そして、次のように終了します(finally
-clause またはメソッドの最後で:
実際にはもっと多くのコードがありますが、これが基本的な考え方です。CompanyMessages
これはコードを乱雑にし、他のコーダーは、監視ツールが読み取るメッセージをフォーマットするために必要な特定のクラスを使用しない独自の解釈で常に混乱させています。したがって、上記のすべての@LogBefore('logLevel')
コードを削除し、 &のような注釈を使用してトレース ログを必要とするすべてのメソッドを提供する方法を探してい@LogAfter('logLevel')
ます。
私がこのソリューションを選択した理由は、他の開発者が新しいことを学ぶ必要がなく、コードの代わりに注釈を使用できるようにするためです。私は、何百もの Web アプリケーションと何十人もの開発者を展開するサーバー環境で働いています。そのため、余分なコーディングや大規模なライブラリを追加せずに、これを Web アプリケーションに実装する方法を探していました。これは、私が提案したものと同様のアノテーションを使用し、各 Web アプリケーションで簡単に構成できる、小さくて安定した AOP 実装を探していることを意味します。パフォーマンスも重要です。これを AOP で実装する最も簡単な例は何ですか?
編集:探しているものと非常によく似たものを見つけましたが、これにはいくつかの問題があります。ロギングが必要なすべてのクラスを構成する必要があります。これは、注釈を使用するだけでなく、より多くのリソースを消費します。スプリング構成はそれ<aop:aspectj-autoproxy/>
を修正しますか?
logging - 注釈付きの Spring AOP ヘルプが必要です!
サンプルコードを手伝ってくれる人はいますか?
サービス レベルで Db 監査またはロギングを実現するには、Spring AOP とアノテーションを実装する必要があります。
オンラインで見つけたいくつかのコードですが、非常に明確で整頓されたものはありません。
例で試してみましたが、インターセプターが正しく動作することはありませんでした。また、@Before や @After などのアドバイザーのいずれも実行できませんでした。
ほとんどの例で XML 構成ファイルを使用していますが、use が省略されている場合があることはわかっています。どのように、いつ?
最後に、@ Audit アノテーションおよび / または @ Pointcut の使用は本当に必要かつ必須ですか?
ご協力をお願いいたします。私はそれについてかなり無知です、
どうもありがとう...乾杯、
-CaktusJP-
java - 他のjarファイルのアスペクトを使用する
私が達成しようとしていることは次のとおりです。
次のような構造のサーバーがあります。
サービスで使用されるアスペクトを含むAPIを定義したいと思います。言う:
次に、サービスを定義し、必要なメソッドに@Authorizationで注釈を付けると、その側面によってポイントカットされます。
知っておくべきこと:
- サービスはAPIを使用してコードをコンパイルするだけです。したがって、APIは既にサーバーに存在するため、スコープは「提供」されます。
- サービスJARは動的にロードされるため、別のクラスローダーに常駐します。
私の質問は、どうすればこれを行うことができますか?それを達成するためにMavenアーティファクトを定義するにはどうすればよいですか?
私はaspectjプラグインにweaveDependenciesセクションがあることに気づきましたが、これにはそのAPIのすべてのクラス(私が避けたいもの)もサービスJARに含まれます。これは正しい動きですか?
前もって感謝します、
ルイ
java - AspectJ - なぜ ajc コンパイラの代わりに注釈を使用するのですか?
アスペクトを定義する @AspectJ アノテーション スタイルと、ajc コンパイラを使用する必要がある AspectJ Java 拡張言語の両方を使用できます。
ajc の代わりに注釈スタイルを使用する理由は何ですか? 注釈スタイルを使用することで多くの機能が放棄されているように思えますが、ajc を使用する必要がないこと以外には (もしあれば) あまり得られません (ajc を使用しなければならないことの何が悪いのですか?)
誰かがこのトピックについて教えてくれませんか?
java - SpringAOPアスペクトが実行されていません
私は自分の単純な側面が実行されない理由を理解しようとしてきました。私は同様の問題の答えを見ましたが、それでもそれを機能させることができません。
私の意図は、カスタムアノテーションが付けられたメソッドの実行を、メソッドの実行にかかる時間を追跡するAOPアドバイスでラップすることです。テストを実行すると、メソッドの出力が表示されますが、アドバイスは実行されていません(出力がログに記録されることを期待しています)。
Aspectクラスは次のとおりです。
注釈が続きます:
テストクラスが続きます:
スプリング構成:
そして最後にテストの出力:
アドバイスをいただければ幸いです。
aspectj - アスペクトのテーマ アプローチを適用するのに最も適した言語はどれですか?
Aspect-Oriented Analysis and Design: The Theme Approach を読むことを考えていますが、躊躇しています。本で教えられていることを AspectJ (Java 用) または C# の Post# で使用することは可能ですか? たぶん、Rubyの水族館で?
本のデザイン プロセスに最適な言語は何ですか? 私は側面への対称的なアプローチにもっと興味があります。
ありがとう