AOPの利用 (1/6)
作成:2015-07-12 13:19
更新:2015-07-12 13:19
更新:2015-07-12 13:19
■AOPって、なに?
Spring Frameworkdにおいて、DI(Dependency Injection、依存性注入)と並び重要な根幹技術となっているのが「AOP」というものです。
AOPは、「Aspect Oriented Programming(アスペクト指向プログラミング)」の略です。アスペクトというのは、一般に「横断的関心事」と呼ばれるものです。
オブジェクト指向では、プログラムは「クラス」を単位として作成されます。それぞれのクラスごとに、そのクラスに必要な機能をメソッドとして実装してくわけですね。この手法は、考え方としてはよくできていますが、逆に「クラスごとに完結している」ということが面倒になってしまうこともあります。
例えば、プログラムの開発中、動作状況をチェックするために、あちこちにSystem.out.println文を書いて値を出力させている、なんて人はいませんか? 誰しもよくやる方法ですね。これ、考えてみるとものすごく面倒くさいやり方です。多数のクラスがあったら、それぞれのクラスのそれぞれのメソッドにprintlnを書いていかないといけません。更に、そうやってプログラムが完成したら、すべてのprintlnを削除しないといけないのです。
こういう「多数のクラスにわたって共通して必要となる処理」が、横断的関心事です。もしも、さまざまなクラスの中にあるメソッドに、println文を自動的に挿入できる機能があったら、これはかなり便利じゃありませんか? そして必要がなくなったらすべて自動的に削除できるとしたら? これこそが、AOPの考え方なのです。
DIが「依存性(値)の注入」なら、AOPは「処理の注入」といってよいでしょう。外部から、クラス内の特定のところに、あらかじめ用意しておいた処理を挿入したり取り除いたりする。これがAOPで実現されることです。
まずは、プロジェクトにAOP関連のライブラリを追加しましょう。pom.xmlを開き、<dependencies>タグ内に下のリスト欄にある内容を追加して下さい。
ここで追加するのは、Spring AOPのライブラリです。グループIDにorg.springframework、アーティファクトIDにspring-aopを指定します。なおバージョンは、Spring Framework 4.1.7での利用に合わせたものを指定してあります。Spring Frameworkのバージョンが異なる場合は、それにあわせてバージョンを調整ください。
AOPは、「Aspect Oriented Programming(アスペクト指向プログラミング)」の略です。アスペクトというのは、一般に「横断的関心事」と呼ばれるものです。
オブジェクト指向では、プログラムは「クラス」を単位として作成されます。それぞれのクラスごとに、そのクラスに必要な機能をメソッドとして実装してくわけですね。この手法は、考え方としてはよくできていますが、逆に「クラスごとに完結している」ということが面倒になってしまうこともあります。
例えば、プログラムの開発中、動作状況をチェックするために、あちこちにSystem.out.println文を書いて値を出力させている、なんて人はいませんか? 誰しもよくやる方法ですね。これ、考えてみるとものすごく面倒くさいやり方です。多数のクラスがあったら、それぞれのクラスのそれぞれのメソッドにprintlnを書いていかないといけません。更に、そうやってプログラムが完成したら、すべてのprintlnを削除しないといけないのです。
こういう「多数のクラスにわたって共通して必要となる処理」が、横断的関心事です。もしも、さまざまなクラスの中にあるメソッドに、println文を自動的に挿入できる機能があったら、これはかなり便利じゃありませんか? そして必要がなくなったらすべて自動的に削除できるとしたら? これこそが、AOPの考え方なのです。
DIが「依存性(値)の注入」なら、AOPは「処理の注入」といってよいでしょう。外部から、クラス内の特定のところに、あらかじめ用意しておいた処理を挿入したり取り除いたりする。これがAOPで実現されることです。
■pom.xmlの準備
まずは、プロジェクトにAOP関連のライブラリを追加しましょう。pom.xmlを開き、<dependencies>タグ内に下のリスト欄にある内容を追加して下さい。
ここで追加するのは、Spring AOPのライブラリです。グループIDにorg.springframework、アーティファクトIDにspring-aopを指定します。なおバージョンは、Spring Framework 4.1.7での利用に合わせたものを指定してあります。Spring Frameworkのバージョンが異なる場合は、それにあわせてバージョンを調整ください。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.1.7.RELEASE</version> </dependency>
※関連コンテンツ
「初心者のためのSpring Framework入門」に戻る