[Seasar-user:21453] Re: アスペクト適用の完全クラス名一致での指定方法について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2012年 9月 4日 (火) 23:26:01 JST
小林 (koichik) です.
完全一致で指定する方法は提供していないので,
ClassPattern を拡張したクラスを作成して,
isAppliedPackageName(String) メソッドを
オーバーライドしてください.
On Sun, 2 Sep 2012 23:11:40 +0900, Hiroshi Yamamoto <hiroshi360 @ gmail.com> wrote:
> 山元と申します。
> いつもお世話になっております。
>
> アスペクトの適用対象外のクラスを指定したのですが、
> 意図したとおりにならなかったため、ご教授いただきたく願います。
>
> <initMethod name="addIgnoreClassPattern">
> <arg>"hoge.action"</arg>
> <arg>"IndexAction"</arg>
> </initMethod>
>
> 上記がdiconファイルでの指定を抜粋したものですが、
> この指定で、意図しないクラスまで対象外となる場合がありました。
>
> 調べたところ、パッケージ名違いで、同じ名前のクラスの場合に発生するようでした。
>
> hoge.action.IndexAction
> hoge.action.fuga.IndexAction
>
> どういった比較になっているのかseasarのソースを確認させていただいたところ
>
> org.seasar.framework.container.autoregister.ClassPattern#isAppliedPackageName
>
> において、パッケージ名の比較が startsWith で行われているため、
> こういった動作になるということが分かったのですが、
> 完全クラス名一致での指定の方法が分かりませんでした。
>
> こういった場合はどのように指定を行えばいいでしょうか。
>
> 以上、よろしくおねがいいたします。
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
--
{
name: "Koichi Kobayashi",
mail: "koichik @ improvement.jp",
blog: "http://d.hatena.ne.jp/koichik/",
twitter: "@koichik"
}
Seasar-user メーリングリストの案内