SpringFrameworkを使用したAOP

Spring Frameworkの重要なコンポーネントの1つは、 Aspect oriented programming (AOP)フレームワーク。アスペクト指向プログラミングでは、プログラムロジックをいわゆる懸念事項と呼ばれる個別の部分に分割する必要があります。アプリケーションの複数のポイントにまたがる関数が呼び出されますcross-cutting concernsそして、これらの横断的関心事は、アプリケーションのビジネスロジックから概念的に分離されています。ロギング、監査、宣言型トランザクション、セキュリティ、キャッシングなどの側面のさまざまな一般的な良い例があります。

OOPのモジュール性の主要な単位はクラスですが、AOPのモジュール性の単位はアスペクトです。依存性注入は、アプリケーションオブジェクトを相互に分離するのに役立ち、AOPは、横断的関心事をそれらが影響するオブジェクトから分離するのに役立ちます。AOPは、Perl、.NET、Javaなどのプログラミング言語のトリガーのようなものです。

Spring AOPモジュールは、アプリケーションをインターセプトするためのインターセプターを提供します。たとえば、メソッドが実行されるときに、メソッドの実行の前後に機能を追加できます。

AOPの用語

AOPの使用を開始する前に、AOPの概念と用語について理解しましょう。これらの用語はSpringに固有のものではなく、AOPに関連しています。

シニア番号 用語と説明
1

Aspect

これは、分野横断的な要件を提供する一連のAPIを備えたモジュールです。たとえば、ロギングモジュールはロギングのAOPアスペクトと呼ばれます。アプリケーションには、要件に応じてさまざまな側面があります。

2

Join point

これは、AOPアスペクトをプラグインできるアプリケーションのポイントを表しています。また、SpringAOPフレームワークを使用してアクションが実行されるのはアプリケーション内の実際の場所であるとも言えます。

3

Advice

これは、メソッドの実行前または実行後に実行される実際のアクションです。これは、SpringAOPフレームワークによるプログラムの実行中に呼び出される実際のコードです。

4

Pointcut

これは、アドバイスを実行する必要がある1つ以上のジョインポイントのセットです。AOPの例で示すように、式またはパターンを使用してポイントカットを指定できます。

5

Introduction

イントロダクションを使用すると、既存のクラスに新しいメソッドまたは属性を追加できます。

6

Target object

1つまたは複数の側面によってアドバイスされているオブジェクト。このオブジェクトは常にプロキシオブジェクトであり、アドバイスオブジェクトとも呼ばれます。

7

Weaving

ウィービングは、アスペクトを他のアプリケーションタイプまたはオブジェクトとリンクして、アドバイスされたオブジェクトを作成するプロセスです。これは、コンパイル時、ロード時、または実行時に実行できます。

アドバイスの種類

春の側面は、次の5種類のアドバイスで機能します-

シニア番号 アドバイスと説明
1

before

メソッドを実行する前にアドバイスを実行します。

2

after

結果に関係なく、メソッドの実行後にアドバイスを実行します。

3

after-returning

メソッドが正常に完了した場合にのみ、メソッドの実行後にアドバイスを実行します。

4

after-throwing

メソッドが例外をスローして終了した場合にのみ、メソッドの実行後にアドバイスを実行します。

5

around

アドバイスされたメソッドが呼び出される前後にアドバイスを実行します。

カスタムアスペクトの実装

Springは @AspectJ annotation style アプローチと schema-basedカスタムアスペクトを実装するためのアプローチ。これらの2つのアプローチについては、次のセクションで詳しく説明します。

シニア番号 アプローチと説明
1 XMLスキーマベース

アスペクトは、XMLベースの構成とともに通常のクラスを使用して実装されます。

2 @AspectJベース

@AspectJは、Java5アノテーションが付けられた通常のJavaクラスとしてアスペクトを宣言するスタイルを指します。