qq_charm 2018-08-17 02:05 采纳率: 40%
浏览 2808
已采纳

spring AOP能获取目标方法中的对象吗?

比如我controller类中有一个方法
public void getsdffg(....){
//dosomething
List list
}
能通过切面拿到这个list对象吗?

  • 写回答

9条回答 默认 最新

  • 假人大哥 2018-08-17 02:09
    关注

    不能,方法体内编译的时候已经转换为栈式的指令了.反射也没法获取元数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • arcticfox9902 2018-08-17 02:44
    关注

    只能获取到方法的参数和返回值,如果需要使用list对象,可以把它当作返回值。

    评论
  • _zming 2018-08-17 03:23
    关注

    只能获取方法参数,和方法返回值,或者list来自线程本地对象ThreadLocal,这样线程内都可以获取

    评论
  • Ljj_9709 2018-08-17 03:24
    关注

    不能,可以获取入参和返回值,你可以把对象return

    评论
  • Ding_Ren_ 2018-08-17 03:38
    关注

    spring aop获取目标对象的方法对象 https://blog.csdn.net/jianzhongqing/article/details/13761789

    评论
  • 往后余生是你 2018-08-17 06:05
    关注

    可以的,把它设置到请求参数中,可以参考我这个例子https://blog.csdn.net/qq_35939864/article/details/81774670

    评论
  • 你米哥 2018-08-17 06:05
    关注

    不可以,如果说传输的数据的话,AOP只能够获取到请求方法的参数,和方法的返回参数。

    评论
  • 蔴牛 2018-08-22 09:33
    关注

    不能,如果非要获取,可以在方法外面定义一个引用

    评论
  • ziyuan12345678 2023-05-26 16:50
    关注

    好像是可以吧,你把这个变量放在方法外面

        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);
    

    img

    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 我需要在PC端 开两个抖店工作台客户端.(语言-java)
  • ¥15 有没有哪位厉害的人可以用C#可视化呀
  • ¥15 可以帮我看看代码哪里错了吗
  • ¥15 设计一个成绩管理系统
  • ¥15 PCL注册的选点等函数如何取消注册
  • ¥15 问一下各位,为什么我用蓝牙直接发送模拟输入的数据,接收端显示乱码呢,米思齐软件上usb串口显示正常的字符串呢?
  • ¥15 Python爬虫程序
  • ¥15 crypto 这种的应该怎么找flag?
  • ¥15 代码已写好,求帮我指出错误,有偿!
  • ¥15 matlab+波形匹配算法