我是spring AOP的新手,我编写了一个aspectJ AOP切入点的小测试,
public void test1() {
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression("execution(public * java.util.*.*(..))");
System.out.println(pointcut.matches(String.class)) ;
}我希望它会打印出"false",因为java.util包中没有包含String.class。但实际上它给了我一个“真”,我犯了什么错误?
版本: spring 3.0
提前谢谢。
发布于 2010-12-17 16:29:55
这个切入点从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);
}所以匹配是正确的。
https://stackoverflow.com/questions/4468097
复制相似问题