0

重複の可能性:
Spring AOP と AspectJ

春の参考書を読んでいます。その中で書かれているのは

  1. フィールド アクセスとジョイン ポイントの更新が必要な場合は、AspectJ などの言語を検討してください。
  2. 非常に粒度の細かいオブジェクト (ドメイン オブジェクトなど) をアドバイスするなど、Spring AOP ではできないことがあります。AspectJ を使用するのが最適なケースです。
  3. AspectJ コンパイラまたはウィーバーとは何ですか?

上記3点の意味が分からず混乱しました。簡単な例で詳しく説明してください。

4

3 に答える 3

3

私の知る限り、Spring AOP は AspectJ のすべての機能をサポートしているわけではなく、限られたセットのみをサポートしています。たとえば、Spring AOP はメソッド レベルのポイントカットのみをサポートするため、きめ細かな制御 (つまり、フィールド レベル) が必要な場合は、AspectJ をネイティブに使用する必要があります。

于 2012-07-27T09:54:43.813 に答える
2

最初のポイントは、メソッドレベルでのみポイントカットを適用できることを単に伝えており、フィールドインターセプトはspring-aopでは実装されていません。

次のポイントは、ドメイン オブジェクト (単純な pojo エンティティ) にアドバイスを追加できないことを示しています。

最後はウィービングについてですが、ウィービングとはJavaBeanのようにSpring XMLファイル内のオブジェクトにAspectを紐付けることです。または簡単に言うと、ウィービングとは、Java クラスに新しいバイトコードを追加して、フレームワークで使用できるようにすることです。

于 2012-07-27T11:37:18.620 に答える
0

また、より重要な違いがあります-AspectJはコンパイル時にAOPのものを注入でき(たとえば、aspectj mavenプラグインを使用)、Springのバージョンに応じてcglibまたはjavasistを使用して実行時にのみSpringAOPを注入できます。ただし、一般的には、とにかく春のAOPを好むでしょう-それがはるかに簡単だからです...

于 2012-07-27T11:09:15.177 に答える