libro
www.tuyano.com
初心者のためのSpring Framework入門

AspectJを利用する (5/5)

作成:2015-07-18 08:32
更新:2015-07-18 08:32

■Bean設定クラスを利用する

さあ、これでAspectJの基本的な利用の仕方はわかりました。が、Spring Frameworkでは、Beanは設定ファイルでなく、クラスを使って定義することもできましたね。AspectJでも、この「定義クラスを使った利用」を行ってみましょう。

com.tuyano.libro.aopパッケージ内に、「SampleAspectConfig」というクラスを作成して下さい。そして下のリスト欄のようにコードを記述しましょう。これがAspectJの設定クラスになります。記述したら、App.javaを開き、以下の一文を修正しましょう。

※Appの修正
ApplicationContext app = 
    new ClassPathXmlApplicationContext("aopbean.xml");
    ↓
ApplicationContext app = 
    new AnnotationConfigApplicationContext(SampleAspectConfig.class);

これで実行すれば、先程と同様にAspectJによるメソッドの挿入が行われ、メソッドの呼び出し前後に処理が実行されるようになります。このクラスでは、設定クラスであることを示す@Configurationの他に、
@EnableAspectJAutoProxy
このようなアノテーションがクラスに追加されています。これは、Bean定義ファイルに用意した<aop:aspectj-autoproxy />タグに相当するものです。これを記述することで、AspectJのオートプロキシー機能がONになり、自動的にアスペクト・クラスのメソッド挿入が行われるようになります。

Beanの定義はこれまでと変わりはありません。ただ、@EnableAspectJAutoProxyを追加するだけでAspectJの機能がONになるわけですね。設定クラスに変えても、AspectJ利用の簡単さは変わらないことがわかるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package com.tuyano.libro.aop;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

@Configuration
@EnableAspectJAutoProxy
public class SampleAspectConfig {
    
    @Bean
    SampleAopBean sampleAopBean() {
        return new SampleAopBean("this is AspectJ bean.");
    }
    
    @Bean
    SampleAspect sampleAspect() {
        return new SampleAspect();
    }

}
※関連コンテンツ

「初心者のためのSpring Framework入門」に戻る