Вы правы. Я не думаю, что вы можете сделать это декларативно -> args () недостаточно гибок, чтобы обрабатывать любые аргументы.
от вопрос уже был дан ответ с синтаксисом аннотации:Aspectj перезаписывает аргумент метода
Но я не могу понять, как это сделать с помощью декларативного синтаксиса AspectJ. Далее следует добавить «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();
}
}
Я не могу понять, как дать "continue ()" все аргументы.