スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Spring MVC AspectJを使ったAOPの検証(その2)

前回の記事で@Aspectアノテーションを使ってAOPの検証を行ったが、今回は、Bean定義ファイルで設定する方法で検証してみる。

■前回の記事
Spring MVC AspectJを使ったAOPの検証

◎動作検証にあたっての各バージョンは以下の通り
  • SpringFramework 3.2.3.RELEASE
  • Java 1.7
  • Tomcat 7.0

1.mvc-config.xml


<bean id ="logAspect2" class="jp.co.sample.aop.LogAspect2"/>
<aop:config>
<aop:aspect id="logAspect" ref="logAspect2">
<aop:pointcut expression="execution(* create(..))" id="logPointCut" />
<aop:around method="aroundCreate" pointcut-ref="logPointCut"/>
</aop:aspect>
</aop:config>

前回のアノテーションを使用したAspectJを使用したクラスと見比べると、対応関係が分かると思う。

2.AspectJを使用したクラス


package jp.co.sample.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Component
public class LogAspect2 {

private static Logger logger;

public String aroundCreate(ProceedingJoinPoint joinPoint) throws Throwable {

logger = LoggerFactory.getLogger(joinPoint.getThis().getClass());

logger.info("create start(LogAspect2)");
String result = (String) joinPoint.proceed();
logger.info("create end(LogAspect2)");
return result;
}
}

前回付与した@Aspect、@Aroundアノテーションは使用しない。

3.動作確認


INFO EncodingFilter#doFilter - doFilter start
INFO LogFilter#doFilter - doFilter start
INFO BookController$$EnhancerByCGLIB$$6c834c9#aroundCreate - create start(LogAspect2)
INFO BookController#create - create start
INFO BookController$$EnhancerByCGLIB$$6c834c9#aroundCreate - create end(LogAspect2)
INFO LogFilter#doFilter - doFilter end
INFO EncodingFilter#doFilter - doFilter end

実行すると、AOPが適用されることが確認できた。

◎まとめ
メンテナンスのコストを考えると、アノテーションを使用した方が良さそうだ。

■過去のSpring関連記事
Spring関連記事 Index

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

bookmount8

Author:bookmount8
システムエンジニア。サーバーサイドでjavaを扱うことが多い。最近は、ミドルやフロント周りも関心あり。

最新記事
カテゴリ
検索フォーム
最新コメント
月別アーカイブ
これまでの訪問者数
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。