我是AOP的新手,我写了一个小测试 of aspectJ AOP切入点,
public void test1() {
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression("execution(public * java.util.*.*(..))");
System.out.println(pointcut.matches(String.class)) ;
}
我希望它会打印出“false”,因为String.class不包含在java.util包中。 但实际上它给了我“真实”, 我犯了什么错误?
版本:spring 3.0
提前致谢。
答案 0 :(得分:2)
此切入点正在寻找java.util
包和子包中的方法执行,其中String
类中有几个。例如String.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);
}
所以比赛是正确的。