【问题标题】:How can I instrument/intercept Method.invoke in a ByteBuddy agent?如何在 ByteBuddy 代理中检测/拦截 Method.invoke?
【发布时间】:2019-06-11 03:04:49
【问题描述】:

这似乎不起作用:

new AgentBuilder
  .Default()
  .with(initStrat)
  .ignore(not(is(Method.class)))
  .type(any()).transform(....)

另外,我只想拦截java.lang.reflect.Method.invoke 而不是Method 类的其他方法。

我还可以在代码的哪里看到默认忽略的类、包和模块的列表?

【问题讨论】:

    标签: java byte-buddy


    【解决方案1】:

    这似乎是正确的,但是在引导类上检测类特别棘手,因为您的代理对此类类不可见。在转换器中添加您的仪器并通过适当的匹配器将其限制为 invoke 方法。

    添加 AgentBuilder.Listener 以获取有关 Byte Buddy 检测的所有类的通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 2020-02-19
      • 2021-02-11
      • 2015-02-16
      相关资源
      最近更新 更多