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

jazzatny jazzatny
2005年 3月 4日 (金) 20:50:42 JST


こんばんは、佐藤です。

DelegateInterceptorで委譲先としてセットされるクラスのインスタンスの
生成についてなのですが、2.1系と2.2系で違うのは何か理由があるのでしょうか。

以下テストです。
--------------------------------------
public interface Introduce {
     public void introduceMySelf();
}
--------------------------------------
public class Target {
     public Target(){
     }
     public void introduceMySelf(){
         System.out.println(this);
     }
}
--------------------------------------
<components>
   <component name="target"
              class="Target" instance="prototype"/>
   <component name="introduce"
              class="Introduce" instance="prototype">
     <aspect>
       <component  
class="org.seasar.framework.aop.interceptors.DelegateInterceptor"
         instance="prototype">
         <property name="target">target</property>
       </component>
     </aspect>
   </component>
</components>
--------------------------------------
public class DelegateTest extends S2TestCase {
     protected void setUp() throws Exception {
         super.setUp();
         include("delegate.dicon");
     }
     public DelegateTest(String arg0) {
         super(arg0);
     }
     public void testDelegate(){
         for (int i = 0; i < 5; i++) {
             Introduce introduce = (Introduce) getComponent("introduce");
             introduce.introduceMySelf();
         }
     }
}
--------------------------------------

以下、結果です。

・2.2系
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]

・2.1系
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]

2.1系では、指定通りprototypeで生成されていて、2.2系ではsigletonに
なっているようなのですが、何か理由があるのでしょうか。

よろしくお願いします。



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