AOPの概念

私たちはいくつかの中央AOPの概念と用語を定義することから始めましょう。これらの用語は、春固有のものではありません...残念ながら、AOP用語は特に直感的ではありません。春には独自の用語を使用している場合しかし、それがさらに混乱になります。

  • アスペクト:複数のクラスを横断する懸念のモジュール化。トランザクション管理は、エンタープライズJavaアプリケーションにおける横断的関心事の良い例です。春AOPでは、側面は通常のクラス(使用して実装されているスキーマ・ベースのアプローチ)または注釈付き正規クラス@Aspect注釈(@AspectJスタイル)。
  • ポイントへの参加:このような方法の実行または例外の処理として、プログラムの実行中に点を、。春AOPでは、参加ポイントは常にメソッドの実行を表します。
  • アドバイス:アクションは、特定の参加の時点で側面で撮影しました。アドバイスの異なるタイプの「周り」、「前」とアドバイス「の後に」含まれています。(アドバイスのタイプを以下に議論される。)春、としてモデルアドバイスを含む多くのAOPフレームワーク、インターセプターを、インターセプタのチェーン維持の周りに参加ポイント。
  • ポイントカット:ジョインポイントを一致する述語。アドバイスは、ポイントカットにマッチ任意参加の時点でポイントカット発現および実行に関連付けられている(例えば、特定の名前を持つメソッドの実行)。ポイントカット表現で一致した点を結ぶという概念は、AOPの中心であり、そして春はデフォルトでAspectJのポイントカット表現言語を使用しています。
  • はじめに:タイプに代わって追加のメソッドやフィールドを宣言。春AOPはあなたがどんなアドバイスオブジェクトに新しいインターフェース(および対応する実装)を導入することができます。たとえば、Beanが実装するために導入を使用することができIsModified、キャッシングを簡素化するために、インターフェイスを。(導入はAspectJのコミュニティのインタータイプ宣言として知られています。)
  • ターゲットオブジェクト:オブジェクトが、1つまたは複数の態様の助言されています。呼ばれることをお勧めオブジェクト。春AOPランタイムプロキシを使用して実装されているため、このオブジェクトは常になりますプロキシオブジェクト。
  • AOPプロキシ:アスペクト契約(助言方法の実行など)を実装するためにAOPフレームワークによって作成されたオブジェクト。Springフレームワークでは、AOPプロキシはJDK動的プロキシまたはCGLIBプロキシであろう。
  • ウィービング:アドバイスオブジェクトを作成するために、他のアプリケーションの種類やオブジェクトと側面を結びます。これは、コンパイル時(例えば、AspectJのコンパイラを使用して)、ロード時に、または実行時に行うことができます。春AOPは、他の純粋なJavaのAOPフレームワークのように、実行時に織りを行います。

アドバイスの種類:

  • アドバイスの前に参加するポイントの前に実行されますが、(それが例外をスローしない限り)参加ポイントに実行フローの手続を阻止する能力を持たないアドバイス:。
  • アドバイス帰国後:アドバイスが参加ポイント後に実行されることを正常に完了します。たとえば、メソッドが例外をスローせずに返します。
  • アドバイス投げた後:メソッドが例外をスローすることによって終了した場合のアドバイスを実行します。
  • 後に(最後に)アドバイス:アドバイスは関係なく、ポイントの終了(正常または例外リターン)に参加する手段を実行します。
  • アドバイスの周りに、このようなメソッド呼び出しとして参加ポイントを囲んでのアドバイス:。これは、アドバイスの中で最も強力なものです。アドバイスの周りメソッド呼び出しの前と後のカスタム動作を実行することができます。また、参加のポイントに移行するか、独自の戻り値を返すか、例外をスローすることによって助言メソッドの実行をショートカットするかどうかを選択する責任があります。

アドバイスの周りの助言の最も一般的な種類です。春AOPは、AspectJのように、アドバイスの種類の完全な範囲を提供するので、我々はあなたが必要な動作を実装することができ、少なくとも強力なアドバイスタイプを使用することをお勧めします。あなたが唯一のメソッドの戻り値でキャッシュを更新する必要がある場合はアドバイスの周りに同じことを実現することができますが、たとえば、あなたは、周りのアドバイスよりもアドバイスを戻した後実施したほうが良いです。最も具体的なアドバイスタイプを使用すると、エラーの少ない可能性を秘めたシンプルなプログラミングモデルを提供します。たとえば、あなたが起動する必要はありませんproceed()上の方法をJoinPoint周りにアドバイスを使用し、したがって、それを呼び出すために失敗することはできません。

あなたはなく、適切なタイプ(例えば、メソッドの実行からの戻り値のタイプ)のアドバイスパラメータで動作するようにスプリング2.0では、すべてのアドバイスパラメータが静的に型付けされているObjectアレイ。

ポイントカットにマッチしたポイントを、参加の概念は、唯一の傍受を提供し、古い技術と区別AOPの鍵となります。ポイントカットは、独立してオブジェクト指向の階層の標的となるアドバイスが可能になります。例えば、宣言的トランザクション管理を提供周りにアドバイスは、(例えば、サービスレイヤ内のすべての業務など)複数のオブジェクトにまたがる一連のメソッドに適用することができます。

関連用語の正式な説明AOP春は、これらの用語は、スプリングによって定義されていない、それはAOP業界の労働者を認識しています。中国語や英語のかどうか、私はそれを記録するために、理解することは非常に困難であると思います。

おすすめ

転載: www.cnblogs.com/heliusKing/p/11617235.html