加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JAXB是否使用字节码检测?

发布时间:2020-12-14 05:04:34 所属栏目:Java 来源:网络整理
导读:我工作的人注意到(在堆栈跟踪中)当使用- javaagent:spring-instrumentation.jar运行jvm时,我的JAXB注释类中有一些我们没有编写的奇怪的新方法:例如SomeJaxbAnnotatedClass $JaxbAccessorM_getFields_setFields_java_util_Set.get 这是否意味着jaxb在可用时
我工作的人注意到(在堆栈跟踪中)当使用- javaagent:spring-instrumentation.jar运行jvm时,我的JAXB注释类中有一些我们没有编写的奇怪的新方法:例如SomeJaxbAnnotatedClass $JaxbAccessorM_getFields_setFields_java_util_Set.get

这是否意味着jaxb在可用时使用字节码检测?我在哪里可以阅读有关此功能的更多信息

谢谢,
尤瓦

解决方法

只是skaffman的帖子的补充:

你看到的(SomeJaxbAnnotatedClass $JaxbAccessor …)是一个内部类,它由JAXB参考实现动态生成.为了防止运行时的反射开销,生成类com.sun.xml.bind.v2.runtime.reflect.Accessor的具体实现的字节码,并通过调用ClassLoader.defineClass(String,byte [],将其注入到当前类加载器中,int,int),在使用反射来绕过defineClass方法的受保护访问修饰符之后.

因此,JAXB参考实现并没有在修改现有类的意义上检测字节码,而是为优化的运行时性能生成新类.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读