[seasar-dotnet:261] Re: Aspectが適用されない現象

Kazuya Sugimoto sugimotokazuya @ gmail.com
2006年 7月 3日 (月) 09:43:42 JST


杉本です。

同じような環境でテストしてみましたが、再現しませんでした。

試した環境は、以下の通りです。
- Diconファイルを同じ構成にする。
- Aspectを適用するコンポーネントを呼び出すコンポーネントにもAspectを適用する
- 呼び出すコンポーネントにPropertyタグで2つのプロパティをDIする
- 呼び出すコンポーネントに2つInterceptorを登録する
- 標準のAOPとSeasar.DynamicProxyによるAOPの2つを試す

特に1.2.0でAOPに関する修正は無かったのですが、なにか環境を再現できていない
部分で問題が発生しているのかもしれません。

テスト用のプロジェクトを作成し、そこでも再現するか試して頂けないでしょうか?
再現する場合は、そのプロジェクトを添付して頂ければ、デバッグしたいと思います。

06/07/01 に m.okuyamaさんは書きました:
> 奥山です。
> 先日リリースされた
> s2container.net-1.2.0を利用していますが、
> あるケースでAspectが適用されない現象が起きており困っております。
>
> [環境]
> ・s2container.net-1.2.0
> ・.Net Framework2.0
>
> [diconファイル構成]
> app.diconでComp.diconをインクルードし、Comp.diconでFramework.diconをインクルードしています。
> diconファイルの構成を記載しておきます。
>
> ■app.dicon
> <components namespace="Root">
>   <include path="Comp.dicon" />
> </components>
>
> ■Comp.dicon
> <components namespace="Hoge.Framework.Server.Biz.Comp">
>   <include path="Framework.dicon" />
>   <component name="HogeComp" class="Hoge.Framework.Server.Biz.Comp.Impl.HogeCompImpl">
>     <aspect>traceInterceptor</aspect>
>   </component>
> </components>
>
> ■Framework.dicon
> <components namespace="Hoge.Framework.Server">
>   <component name="traceInterceptor" class="Seasar.Framework.Aop.Interceptors.TraceInterceptor"/>
>   <component name="dbExceptionInterceptor" class="Hoge.Framework.Server.Data.DbExceptionInterceptor">
>     <arg>
>       <component class="Hoge.Framework.Server.Data.Impl.OracleExceptionHandler" />
>     </arg>
>   </component>
>   <component name="mapper" class="Hoge.Framework.Server.Ibatis.Impl.MapperImpl">
>     <property name="MaxResults">300</property>
>     <property name="MapPath">".\\config\\SqlMap.config"</property>
>     <aspect>traceInterceptor</aspect>
>     <aspect>dbExceptionInterceptor</aspect>
>   </component>
> </components>
>
>
> [調査した内容]
> HogeCompにはmapperのインターフェイス定義のsetterが用意されておりDIされます。
> ここでmapperに対してdbExceptionInterceptorとtraceInterceptorがAspectされません。
> 一方でAspect対象を変えてHogeCompImplにdbExceptionInterceptorとtraceInterceptorのAspectを定義すると正常に動作しま
> す。
>
> 曖昧な情報で非常に申し訳ないのですが、何かお気づきの点などありましたら教えて下さいませんでしょうか?
>
> ちなみにSubversionのリポジトリから5月下旬くらいに取得したソース
> (trunk,.NetFramework2.0用)を
> そのままビルドして利用している時には問題はありませんでした。
> 1.2.0の正式リリースに伴いSeasar.dllを入れ替えましたところ、
> 当該事象が発生しています。
>
> --
> m.okuyama
>
>
> --------------------------------------
> Let's start Yahoo! Auction  -  Free Campaign Now!
> http://pr.mail.yahoo.co.jp/auction/
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/seasar-dotnet
>


-- 
Kazuya Sugimoto
http://d.hatena.ne.jp/sugimotokazuya/


seasar-dotnet メーリングリストの案内