[Seasar-user:8930] Re: [S2]Dxoを抽象クラスとして定義する方法

中村 渉 [E-MAIL ADDRESS DELETED]
2007年 7月 4日 (水) 10:04:30 JST


小林さん

ご回答ありがとうございます。
customizer.diconに定義して利用できるようになりました。

ただ、教えていただいた記述ですとkijimunaに怒られるので
<arg>で囲みましたが、問題ないですよね?

<component name="dxoCustomizer"
class="org.seasar.framework.container.customizer.CustomizerChain">
  <initMethod name="addCustomizer">
    <arg>
      <component
class="org.seasar.framework.container.customizer.AspectCustomizer">
        <property name="interceptorName">"dxo.interceptor"</property>
        <property name="pointcut">"convert"</property>
      </component>
    <arg>
  </initMethod>
</component>



Koichi Kobayashi wrote:
> 小林 (koichik) です.
> 
> Date:    Tue, 03 Jul 2007 21:21:21 +0900
> From:    中村 渉 <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:8917] [S2]Dxoを抽象クラスとして定義する方法
> 
>> ドキュメントには抽象クラスも可能とあったので
>> 試してみたのですがAbstractMethodErrorが発生します。
>>
>> public abstract class UserDxo {
>> 	public abstract Map convert(UserDto user);
>> }
> 
> S2 の AOP は,デフォルトではインタフェースに
> 定義されているメソッドにのみインターセプタが
> 適用されます.
> 上記クラスのようにインタフェースがない場合は
> ポイントカットを明示的に指定する必要があります.
> UserDxo を dicon に直接定義しているなら
> 
> <component class="UserDxo">
>   <aspect pointcut="convert">dxoInterceptor</aspect>
> </component>
> 
> SMART deploy なら customizer.dicon で
> 
> <component name="dxoCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
>   <initMethod name="addCustomizer">
>     <component class="org.seasar.framework.container.customizer.AspectCustomizer">
>       <property name="interceptorName">"dxo.interceptor"</property>
>       <property name="pointcut">"convert"</property>
>     </component>
>   </initMethod>
> </component>
> 
> としてください.
> 
> あるいは,
> 
> public interface UserDxo {
>   Map convert(UserDto user);
> }
> 
> public abstract class UserDxoImpl implements UserDxo {
> }
> 
> のように,インタフェースと実装 (抽象) クラスに
> 分けてください.
> SMART deploy の場合,実装クラスのパッケージは
> <root>.dxo.impl または,<root>.web.<subapp>.impl に
> してください.
> 
> 


-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 ノハ//   プロスパーク株式会社 中村 渉
   // ノハ  [E-MAIL ADDRESS DELETED]
  //       竹橋オフィス
 ハ//         〒101-0054 東京都千代田区神田錦町2-7 南部ビル6F
  //          TEL:03-6804-8680 FAX:03-6804-8681
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



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