0 0

spring ,hibernate 都是用到了asm字節碼技術,請問它們具體都拿ASM來實現了什么功能?或者說在哪個功能上用到的5

      spring ,hibernate 都是用到了asm字節碼技術,請問它們具體都拿ASM來實現了什么功能?或者說在哪個功能上用到的
 
    我們查看Spring,主要使用了cglib動態代理來實現一些IOC或者AOP功能,但是這個和ASM好像是沒關系?還有hibernate,在做數據持久化的時候主要用的是反射,那它有拿ASM干了什么呢?
2015年1月16日 17:00

3個答案 按時間排序 按投票排序

0 0

采納的答案

動態代理,hibernate的懶加載使用到了asm,spring的AOP也使用到了。

你建立一個hibernate映射對象并使用懶加載配置的時候,在內存中生成的對象使用的不再是你實現的那個類了,而是hibernate根據字節碼技術已你的類為模板構造的一個新類,證明就是當你獲得那個對象輸出類名是,不是你自己生成的類名了。spring可能是proxy$xxx,hibernate可能是<你的類名>$xxx$xxx之類的名字。

2015年1月21日 13:42
0 0

CGLIB是對ASM的封裝,簡化了ASM的操作,降低了ASM的使用門檻

2015年1月22日 15:31
0 0

asm字節碼增強技術主要是用來反射的時候提升性能的,如果單純用jdk的反射調用,性能是非常低下的,而使用字節碼增強技術后反射調用的時間已經基本可以與直接調用相當了

2015年1月16日 18:48
Global site tag (gtag.js) - Google Analytics 开心农场种蔬菜赚钱 配资网上上盈配资 怎么看个股票指数 香港九龙彩色黑白图库精选 云南快乐十分组三遗漏 黑龙江快乐十分中奖规则 浙江11选5一定牛300期走势图 山东黄金股票行情走势 体彩河南11选五走势图 杠杆 福建31选7和36选7联合走势图 欢乐彩app网址是多少 广东十一选五前三遗漏数据 下载云南快乐10分开奖 好彩1网上投注购买 黑龙江快乐十分二十选八开奖结果 山东快乐扑克3今天