spring ,hibernate 都是用到了asm字节码技术,请问它们具体都拿ASM来实现了什么功能?或者说在哪个功能上用到的

来源:互联网  责任编辑:小易  时间:2017/5/25 14:47:31
本网有用户碰到这样的问题:spring ,hibernate 都是用到了asm字节码技术,请问它们具体都拿ASM来实现了什么功能?或者说在哪个功能上用到的,具体问题如下:

      spring ,hibernate 都是用到了asm字节码技术,请问它们具体都拿ASM来实现了什么功能?或者说在哪个功能上用到的
 
    我们查看Spring,主要使用了cglib动态代理来实现一些IOC或者AOP功能,但是这个和ASM好像是没关系?还有hibernate,在做数据持久化的时候主要用的是反射,那它有拿ASM干了什么呢?

本网根据需求用户需求,为用户寻得以下其他网友提供的解决方法,方法仅供参考,具体如下:

=================1楼=====================

动态代理,hibernate的懒加载使用到了asm,spring的AOP也使用到了。

你建立一个hibernate映射对象并使用懒加载配置的时候,在内存中生成的对象使用的不再是你实现的那个类了,而是hibernate根据字节码技术已你的类为模板构造的一个新类,证明就是当你获得那个对象输出类名是,不是你自己生成的类名了。spring可能是proxy$xxx,hibernate可能是<你的类名>$xxx$xxx之类的名字。

=================2楼=====================

CGLIB是对ASM的封装,简化了ASM的操作,降低了ASM的使用门槛

=================3楼=====================

asm字节码增强技术主要是用来反射的时候提升性能的,如果单纯用jdk的反射调用,性能是非常低下的,而使用字节码增强技术后反射调用的时间已经基本可以与直接调用相当了

如果您还有更好的解决方法,请在最下面评论中留下您的解决方法


  • 本文相关:
  • 使用Mybatis执行sql时如何统一校验输入参数?
  • js里这种表述式是啥意思?return (y1 - y2 > 0 ? "Up" : "Down");
  • 请问基于云架构的J2EE架构应该怎么做?
  • spring ,hibernate 都是用到了asm字节码技术,请问它们具体都拿ASM来实现了什么功能?或者说在哪个功能上用到的
  • 如何判断操作系统是32位还是64位?
  • DBA_OBJECTS + ROWNUM 和 DUAL + ROWNUM 一个结果比较的疑问
  • ajax缺点?
  • 判断字符串是否是数字开头
  • 用java程序监视mysql的变化。求方法
  • 如何对URL地址栏传参的信息进行加密或保护
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2015 www.zgxue.com All Rights Reserved