问个问题

暗中观察 发布于 2018/03/13 08:49
阅读 91
收藏 0

大家都知道,动态代理有两种方式,jdk自带的和cglib。我想问的是两者性能有可比性吗?,我知道两者适用场景不同,mybatis的dao接口就是用动态代码实现的,我想说可以用cglib吧?为何用jdk自带的呢?有什么考量吗?

加载中
0
丶璀璨星辰2
丶璀璨星辰2
jdk7以上包括7都是jdk的快,mybatis是接口映射sql语句,没法使用cglib
暗中观察
暗中观察
回复@丶璀璨星辰2 : 对,我觉得回答到了核心,cglib是基于继承实现的
0
风青山
风青山
杀鸡焉用牛刀
风青山
风青山
回复 @暗中观察 : 主要是资源(磁盘和带宽)占用方面吧。如果自带包就能很好地解决问题,那为什么要用第三方包?
暗中观察
暗中观察
回复@风青山 : 是有性能方面的考量吗?
0
暗中观察
暗中观察

是不是可以这么理解,如果有个类想被代理的话,且它有实现接口,那么就优先考虑jdk的动态代理?

0
一生做恶
一生做恶
jdk的api基本都可以找到第三方替换,为什么你用jdk而不是一堆第三方呢?
暗中观察
暗中观察
回复@一生做恶 : 我只想想搞清楚为何,有多种方式可以达到目录,选择特定一种肯定是有原因的,比如人们更喜欢用httpClient而不是jdk原生的HttpURLConnection ,选择都是有原因的,
0
h
hulk0505
jdk的动态代理是需要接口的,cglib是利用字节码重新生成,mybatis刚好有接口的,而且不需要依赖第三方jar,jdk原生支持,我想应该是这样的
返回顶部
顶部