« 2008年05月 | メイン | 2008年08月 »

2008年06月 アーカイブ

2008年06月02日

自インスタンスのメソッド呼び出し時にAOPがかからない

Spring FrameworkでのAOPの話です。Springに限らずそうですが、AdviceがPointCutにマッチしたとしても、自インスタンスからの呼び出し時には適用されません。(Proxy越しにならないからですね。)
他のインスタンスからの呼び出しに変えるのが最もわかりやすい方法ですが、そのように出来ない場合には、自インスタンスのメソッド呼び出し前にProxyを作ってAdviseを適用しなおすような方法になると思います。
例えば以下のような感じです。

ProxyFactory proxyFactory = new ProxyFactory(this);
Map advisors = ((ListableBeanFactory) BeanFactoryの取得).getBeansOfType(Advisor.class);
Iterator iterator = advisors.keySet().iterator();

while (iterator.hasNext()) {
 Advisor advisor = (Advisor) advisors.get(iterator.next());
 proxyFactory.addAdvisor(advisor);
}

こうすると、proxyFactory.getProxyでインスタンスが取れます。こいつ越しに呼べば、ちゃんとAOPがかかります。(ださいですが。。)


2008年06月03日

Android勉強会

早稲田大学主催でAndroid勉強会が定期開催されています。
 http://android.siprop.org/
秋葉原ダイビルの12階にあるwakhok東京サテライト校というところでやっています。

現在、第4回から第6回の申し込み受付中です。
もしご興味がある方は是非ご参加ください。

・申し込みページ
http://android.siprop.org/index.php?%BF%BD%A4%B7%B9%FE%A4%DF

・スケジュール
http://android.siprop.org/index.php?%A5%B9%A5%B1%A5%B8%A5%E5%A1%BC%A5%EB

About 2008年06月

2008年06月にブログ「GrandNature」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2008年05月です。

次のアーカイブは2008年08月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。