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

AOPの利用 (6/6)

作成:2015-07-12 13:30
更新:2015-07-12 13:33

■アノテーションでAOP設定クラスを作る

これで、基本はわかりました。今度は、bean.xmlをクラスに書き換えてみましょう。Spring Frameworkでは、Bean設定ファイルを使わず、設定のためのクラスで同じことができましたね。

では、com.tuyano.libro.aopパッケージに、「SampleAopConfig」というクラスを作成しましょう。そして、下のリスト欄のようにソースコードを記述して下さい。

作成したら、bean.xmlからSampleAopConfigクラスを使うようにAppクラスのコードを修正しましょう。以下の一文を書き換えて下さい。

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

これでAppを実行すると、先ほどと同じように出力がされます。bean.xmlに記述されていたのとまったく同じBeanがSampleAopConfigから取得できるようになっていることがわかります。

ここでは、@Configurationアノテーションを付けてSampleAopConfigクラスを宣言し、Beanインスタンスを返すメソッドに@Beanアノテーションを付けてBeanが取得されるようにしています。注目は、SampleMethodAdviceインスタンスを作成しているsampleMethodAdviceメソッドです。インスタンス作成後に、以下のようにして必要なプロパティを設定しています。
bean.setTarget(sampleAopBean);
bean.setInterceptorNames("sampleMethodAdvice");
この「setTarget」と「setInterceptorNames」が、先にbean.xmlで記述してあった<property name="target"><property name="interceptorNames">に相当する処理、というわけです。

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

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

●プログラム・リスト●

package com.tuyano.libro.aop;

import org.springframework.aop.framework.ProxyFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SampleAopConfig {
    private SampleAopBean sampleAopBean = 
        new SampleAopBean("this is message bean.");
    private SampleMethodAdvice sampleMethodAdvice = 
        new SampleMethodAdvice();
    
    @Bean
    SampleAopBean sampleAopBean() {
        return sampleAopBean;
    }
    
    @Bean
    SampleMethodAdvice sampleMethodAdvice() {
        return sampleMethodAdvice;
    }
    
    @Bean
    ProxyFactoryBean proxyFactoryBean() {
        ProxyFactoryBean bean = new ProxyFactoryBean();
        bean.setTarget(sampleAopBean);
        bean.setInterceptorNames("sampleMethodAdvice");
        return bean;
    }
    
    
}
※関連コンテンツ

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