2

私はSpring AOPが初めてで、aspectJ AOPポイントカットの小さなテストを書いています。

public void test1() {

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

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

String.class は java.util パッケージに含まれていないため、「false」と出力されると思います。しかし、実際には「真実」が得られます。私が犯した間違いは何ですか?

バージョン: 春 3.0

前もって感謝します。

4

1 に答える 1

2

このポイントカットは、クラス内にいくつかあるパッケージおよびサブパッケージからのメソッドの実行を探しています。たとえば、次のように見えるソース(私が挿入したコメント):java.utilStringString.replaceFirst(String, String)

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

したがって、一致は正しいです。

于 2010-12-17T08:29:54.587 に答える