[Seasar-user:11907] Re: [Teeda]public transient xxClass xxField;

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 12月 5日 (水) 04:00:14 JST


小林 (koichik) です.

Date:    Wed, 05 Dec 2007 02:02:19 +0900
From:    "TAKEUCHI Shinichi / 竹内 伸一" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11906] Re: [Teeda]public transient xxClass xxField;

> 1)PageClass の共通の親クラスに パブリックフィールドがあり
>      そこにはSerializableなObjectが入る

[Seasar-user:11011] では「Serializableでない」との
ことだったので辻褄が合わないと思っていたのですが,
Serializable だったのですね.それなら納得です.

> 2)上記のObjectはHelperであり、S2がDIしてくれるもの
> 3)HelperにはCustomizerが設定されておりS2がEnhanceしている
>       参考:cutomizer.dicon に(A)の指定あり
> 4)HotDeployで動作(env.txt が ut)
> 5)同じ親クラスを継承する別のPageに遷移
> 
> メカニズムも考察してみましたが、あっているでしょうか?

はい.

> ■対策として想定されること
>   HelperなどのEnhanceされる可能性のあるものはSerializable不可とするか、

それがいいと思います.

>   パブリックはやめてSetterだけを作成する形にする

Teeda 1.0.12 からは public field でも transient を
付けると引き継がないようになります.

>   EntityやDTOなどもSerializableにしてPageにくっつけた場合に、Customizer
> やAOPの直接指定でEnhanceされた場合に同じ現象が発生するような気がしますが
> どんなもんでしょうか?

Entity や DTO に AOP を適用する必要がないと思います.
Entity は Serializable にする必要もないと思います.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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