[Seasar-user:1557] Re: DelegateInterceptor:委譲先のインスタンス生成 2.1系と2.2系で違うのは何故?

Koichi Kobayashi koichik
2005年 3月 5日 (土) 19:00:26 JST


小林 (koichik) です.

On Sat, 05 Mar 2005 06:42:31 +0900
jazzatny <[E-MAIL ADDRESS DELETED]> wrote:

> おはようございます(って小林さんはこれから寝るの?)。佐藤です。

はい,あれから寝ました.(^^;
# 今まで寝てたわけではありません,念のため.

> 解説ありがとうございました。私、まだまだ理解が足りないみたいですね。

この辺りはドキュメント化されていませんからね.
S2AOP を使った場合,オブジェクトの構造は次のようになります.

+----------+   +------------+   +------------+   +-------------+   +--------+
| Delegate |-->| Introduce  |-->|   Method   |-->|  Delegate   |-->| Target |
|   Test   |   | (Enhanced) |   | Invocation |   | Interceptor |   |        |
+----------+   +------------+   +------------+   +-------------+   +--------+

最初のサンプルで表示されていたオブジェクトは Target,
先の [Seasar-user:1552] で表示されたオブジェクトは
Introduce (Enhanced) です.

ここで,MethodInvocation が使用する DelegateInterceptor の
インスタンスは,Introduce をエンハンスする時点でコンテナから
取得されたものが常に使われます.
これは,Introduce (Enhanced) のインスタンスが作成される
タイミングとは関係ありません.ここが直感的でないところですね.

> すいません、プレッシャーをかけるつもりではありませんでした。
> でも、ここの理解が足りないと思わぬところで足をすくわれることに
> なると思うのでよろしくお願いします。

はい,頑張ります〜.

-- 
<signature>
    <name>Koichi Kobayashi</name>
    <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内