[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 メーリングリストの案内