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