[Seasar-user:3497] Re: diconでOGNL式にaspect適用可?

Asarima [E-MAIL ADDRESS DELETED]
2006年 4月 13日 (木) 12:33:11 JST


 Asarimaです。

>OGNL で取得したコンポーネントはすでにインスタンス化されて
>しまっており,S2AOP が作成したサブクラスのインスタンスでは
>ないためアスペクトは適用されません.

 ああ、やっぱりそういうことなんですね。分かりました。


>DelegateInterceptor を使えばやりたいことが
>できるかもしれません.
>
><component class="...">
>  <aspect>hogeInterceptor</aspect>
>  <aspect>
>    <component class="org.seasar.framework.aop.interceptors.
>DelegateInterceptor">
>      <property name="target">@[E-MAIL ADDRESS DELETED]</property>
>    </component>
>  </aspect>
></component>
>
>一番外側の <component> 要素には class 属性を指定する
>必要があります.インタフェースを指定しても構いません.
>このコンポーネントを取得してメソッドを呼び出すと,
>最初に hogeInterceptor が適用され,その後に
>DelegateInterceptor が適用されます.
>DelegateInterceptor は target プロパティに指定された
>コンポーネントに委譲します (同じメソッドを呼び出します).
>
>当然ですが,コンテナから取得したコンポーネントの
>メソッドを呼び出さないとアスペクトは適用されません.
>hogeFactory.HOGE のメソッドを呼び出してもダメです.

 なるほど、今回の場合DelegateInterceptorは使えそうですね!
 今度インターフェイスを指定して挑戦してみます。
 小林さん、どうもありがとうございました。



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