[Seasar-user:21445] アスペクト適用の完全クラス名一致での指定方法について
Hiroshi Yamamoto
[E-MAIL ADDRESS DELETED]
2012年 9月 2日 (日) 23:11:40 JST
山元と申します。
いつもお世話になっております。
アスペクトの適用対象外のクラスを指定したのですが、
意図したとおりにならなかったため、ご教授いただきたく願います。
<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 メーリングリストの案内