¿Cuál es la sintaxis declarativa de AspectJ para sobrescribir un argumento?
Esto se ha respondido antes con la sintaxis de anotación:Aspectj sobrescribe un argumento de un método
Pero no puedo entender cómo hacerlo con la sintaxis declarativa de AspectJ. Lo siguiente debería agregar "Poop" delante de cada cadena en el método pero no lo hace.
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();
}
}
No puedo entender cómo dar "proceder ()" todos los argumentos.