比如我controller类中有一个方法
public void getsdffg(....){
//dosomething
List list
}
能通过切面拿到这个list对象吗?
不能,方法体内编译的时候已经转换为栈式的指令了.反射也没法获取元数据
只能获取到方法的参数和返回值,如果需要使用list对象,可以把它当作返回值。
只能获取方法参数,和方法返回值,或者list来自线程本地对象ThreadLocal,这样线程内都可以获取
不能,可以获取入参和返回值,你可以把对象return
spring aop获取目标对象的方法对象 https://blog.csdn.net/jianzhongqing/article/details/13761789
可以的,把它设置到请求参数中,可以参考我这个例子https://blog.csdn.net/qq_35939864/article/details/81774670
不可以,如果说传输的数据的话,AOP只能够获取到请求方法的参数,和方法的返回参数。
不能,如果非要获取,可以在方法外面定义一个引用
好像是可以吧,你把这个变量放在方法外面
String zipFileName;
public String getZipFileName() {
return zipFileName;
}
在aop中使用反射来获取
Class<?> targetClass = joinPoint.getTarget().getClass();
String methodName = joinPoint.getSignature().getName();
Method getField = targetClass.getDeclaredMethod("getZipFileName");
getField.setAccessible(true);
Object result = getField.invoke(joinPoint.getThis());
System.out.println((String) result);