因此,这已经与注释语法之前回答AspectJ的declaritive语法:Aspectj overwrite an argument of a method什么是overwritting参数
但我无法弄清楚如何使用AspectJ的declaritive语法做到这一点。 以下应该在方法中的每个字符串的前面添加“Poop”,但它不会。
public aspect UserInputSanitizerAdvisor {
pointcut unSafeString() : execution(@RequestMapping * * (..));
Object around() : unSafeString() {
//thisJoinPoint.getArgs();
//proceed();
System.out.println("I'm Around");
Object[] args = thisJoinPoint.getArgs();
if (args != null) {
for (int i = 0; i < args.length; i++) {
Object o = args[i];
if (o != null && o instanceof String) {
String s = (String) o;
args[i] = "poop: " + s;
}
}
}
return proceed();
}
}
我不知道如何给“proceed()”所有的参数。
没有,只能用于Annotation AspectJ语法。 – 2011-01-30 16:53:47
你说得对。我不认为你可以用声明来做 - > args()不够灵活来处理任何参数。 – Howard 2011-01-30 17:51:37