アスペクト指向プログラミングフレームワーク
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/20 01:11 UTC 版)
「Spring Framework」の記事における「アスペクト指向プログラミングフレームワーク」の解説
Spring Framework には自前のAOPフレームワークがあり、「アスペクト」におけるクラス間を横断するような機能(横断的関心事(英語版))のモジュール化を行う。独自のAOPフレームワークを作る動機は、設計においても実装においてもコンフィギュレーションにおいてもあまり複雑すぎない基本的AOP機能を提供できると考えたためである。Spring AOP フレームワークは Spring コンテナを最大限に利用している。 Spring AOP フレームワークは基本的に横取り方式であり、実行時にコンフィギュレーションされる。このため、コンパイル時やロード時に織り込む (weaving) 必要がない。一方、横取りではジョイントポイント(英語版)にあるオブジェクトの public または protected のメソッドしか対象にできない。 AspectJ と比較すると、Spring AOP は非力だが単純である。Spring 1.2 では AspectJ のアスペクトをコンテナ内で構成できる。Spring 2.0 ではさらに AspectJ との連携を強化し、例えば en:Pointcut 言語が流用されている。 Spring AOP は Spring Framework 自体の横断的関心事に対しても機能する。コンテナを使って生成されコンフィギュレーションされた任意のオブジェクトに Spring AOP を使って質を向上させることができる。 Spring Framework はトランザクション管理、セキュリティ、リモートアクセス、JMX などの部分に Spring AOP を使っている。 バージョン2.0以降、Spring は AOP のコンフィギュレーション方法を2種類提供している。 スキーマベースの手法 @AspectJベースの注釈スタイル Springチームは、新たなAOP関連用語を導入しないことを決めている。従って、Spring のドキュメントに出てくるAOP関連用語は、AspectJなどと同じものだけである。
※この「アスペクト指向プログラミングフレームワーク」の解説は、「Spring Framework」の解説の一部です。
「アスペクト指向プログラミングフレームワーク」を含む「Spring Framework」の記事については、「Spring Framework」の概要を参照ください。
- アスペクト指向プログラミングフレームワークのページへのリンク