[Seasar-user:539] AspectでのSelメソッド
B gluegent.com Masataka Kurihara
kurihara
2004年 3月 30日 (火) 11:36:58 JST
栗原です:
<aspect>でSelメソッドがたたけるといいなあと思ってしまいました。
<aspect pointcut="run">
out.println('run calling...');
joinpoint.proceed();
out.println('run called');
</aspect>
こうきたときに、XMLファクトリでSelAdvice(仮称)を生成して内部
的に受けちゃって、invokeが来たらSelの実行を行うわけです。
これの実現には、Selの複文実行が必要になっちゃうので、すぐは実
現しなくても、将来あると便利かと思います。joinpointが暗黙オブジ
ェクトになっていれば、TraceAdvice的なことはなんでもできちゃう。
まあTraceAdviceでいいじゃん、ということも言えますけど。
Selで宣言文および代入文はできなくとも、複文の実行ができると可
能性広がると思います。
さらに変数宣言と代入もできたら鬼ですが、それは過剰かと思います。
ifやforで制御できたらさらに爆発ですが。。。壊れてますね。すいま
せん。BSFで受けてJavaScriptか?Tapestryはそういうアプローチして
ます。JavaScriptやJythonでリスナーが書けます。さしずめ、
<component name="comp" language="JavaScript">
factory = initialContext.lookup('factory');
factory.setEnv(env);
factory.initialize();
return factory.createComponent();
</component>
やっぱりシンプルに「易しく」じゃなくなっちゃいましたね。ダメだな。
--
株式会社グルージェント
栗原 傑享(くりはら まさたか)
渋谷区渋谷3-7-6 第6矢木ビル4F
TEL:03-5469-8869 FAX:03-5469-8879
URL:http://www.gluegent.com/
--
> <[E-MAIL ADDRESS DELETED]> の、
> "[Seasar-user:517] Re: groovy-seasar 0.1 released!" において、
> "Masataka Kurihara <[E-MAIL ADDRESS DELETED]>"さんは書きました:
>
> > 栗原です。
> >
> > > む。負けてられない(笑)。
> >
> > こちらも負けていられない(笑)。
> >
> > ところでいまチュートリアルかいてますが、この機能、
> > どういう使い方しますか?私はまだピントきてません。
> >
> > > 次のリリースで、
> > > <component>new java.math.BigDecimal(10)</component>
> > > <component name="obj">new java.lang.Object()</component>
> > > に対応します。
>
> argタグとかでは既にできるのですが、
> <component class="Hoge">
> <arg>aaa</arg>
> <arg>bbb</arg>
> </component>
> のかわりに、
> <component>new Hoge(aaa, bbb)</component>
> とかけたり、
> <component name="dataSource">initialContext.lookup('jdbc/orace')</component>
> などとメソッド呼び出しの結果をコンポーネントにすることができるようになります。
> また、initMethod,destroyMethodも同様に
> <component name="myMap" class="java.util.HashMap">
> <initMethod>myMap.put('aaa', '111')</initMethod>
> </component>
> とできるようにする予定です。
> ---
> Yasuo Higa <[E-MAIL ADDRESS DELETED]>
> INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内