2010-12-17 3 views
2

私は春のAOPに新しいですし、私はAspectJのAOPポイントカットの小さなテスト を書き、pointcut.matches(String.class)「真」を返す

public void test1() { 

    AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); 
    pointcut.setExpression("execution(public * java.util.*.*(..))"); 

    System.out.println(pointcut.matches(String.class)) ; 
} 

が、私はそれが「偽」プリントアウトすることを期待する理由String.classはjava.utilパッケージに含まれていないためです。 実際に私に「真実」を与えます 私は間違いをしましたか?

バージョン:spring 3.0

ありがとうございます。

答えて

2

このポイントカットはStringクラスのいくつかあるうちjava.utilパッケージからメソッドとサブパッケージの実行を探しています。例えば

public String replaceFirst(String regex, String replacement) { 
return 
     /* java.util.regex.Pattern */ Pattern.compile(regex).matcher(this) 
     /* java.util.regex.Matcher */ .replaceFirst(replacement); 
} 

だから、試合が正しい:(私が挿入されたコメント)を以下のようにString.replaceFirst(String, String)のソースが見えます。

関連する問題