E 'possibile modificare il valore argomento metodo su base di qualche controllo prima di eseguire utilizzando Spring AOPSpring AOP modificare il valore di argomento metodi su consiglio intorno
Il mio metodo
public String doSomething(final String someText, final boolean doTask) {
// Some Content
return "Some Text";
}
metodo Consigli
public Object invoke(final MethodInvocation methodInvocation) throws Throwable {
String methodName = methodInvocation.getMethod().getName();
Object[] arguments = methodInvocation.getArguments();
if (arguments.length >= 2) {
if (arguments[0] instanceof String) {
String content = (String) arguments[0];
if(content.equalsIgnoreCase("A")) {
// Set my second argument as false
} else {
// Set my second argument as true
}
}
}
return methodInvocation.proceed();
}
Si prega di suggerire il modo di impostare l'argomento metodo valore e poiché non ci sono opzioni setter per l'argomento.
Basta fare attenzione: queste cose vengono saltate facilmente durante il ref principio di partecipazione. Se non hai una bella suite di test può far male. –
Sì, assolutamente! Gli argomenti devono combaciare e gli strumenti di refactoring non aiuteranno in questi casi. – reto
Ma ho usato l'interfaccia MethodInterceptor. Quali modifiche devo apportare per ProceedingJoinPoint –