Hay dos formas de obtener el nombre del parámetro del método en springboot
El método utilizado para verificar, puede ver que hay dos nombres de parámetros, una prueba y una num.
public String getString ( String test, Integer num ) {return ""; }
1. Utilice el LocalVariableTableParameterNameDiscoverer de Spring
Definir la clase de uso
private static LocalVariableTableParameterNameDiscoverer parameterNameDiscovere = new LocalVariableTableParameterNameDiscoverer();
Lo uso aquí en aop, así que uso el método get ProceedingJoinPoint, parameterNameDiscovere.getParameterNames () debe pasarse en el método
String[] parameterNames = parameterNameDiscovere.getParameterNames(getMethod((ProceedingJoinPoint) joinPoint));
for (String parameterName : parameterNames) {
logger.info(parameterName);
}
El resultado de salida es que los nombres de los parámetros se emiten correctamente en orden
prueba
en uno
Si el método no tiene parámetros, parameterNames se devuelve como nulo
2. ProceedingJoinPoint cuando se utiliza AOP
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
String[] strings = methodSignature.getParameterNames();
System.out.println(Arrays.toString(strings));
Salida
[Prueba si]
En la actualidad, he resumido dos métodos más convenientes, y si hay buenos, puedes comentarme.