JDK的动态代理-----为接口进行代理
程序员文章站
2022-03-28 18:20:15
JDK的动态代理是必须掌握的,动态代理的好处就不用我多说了吧 :) 小弟最近在研究mybatis的源码实现,就开始了解mybatis的Mapper代理机制,为什么接口不用实现类也能代理? 好了,废话不多说!!! 上代码 下面是测试结果: JDK的动态代理要有实现一个InvocationHandler ......
JDK的动态代理是必须掌握的,动态代理的好处就不用我多说了吧 :)
小弟最近在研究mybatis的源码实现,就开始了解mybatis的Mapper代理机制,为什么接口不用实现类也能代理?
好了,废话不多说!!! 上代码
下面是测试结果:
JDK的动态代理要有实现一个InvocationHandler的接口,要实现invoke的方法,invoke方法中就是代理对象具体的方法调用的逻辑,
在mybatis的Mapper代理中,有一个类 MapperProxy<T>实现了InvocationHandler的接口,并重写了invoke的方法
下面是MapperProxy中的invoke方法:
其实为接口进行代理,用的就是偷梁换柱,(小弟拙见)