首先在测试代码中找到实现select , insert,update等方法的实现类getMapper,CTRL+鼠标左键点进去,进入的是一个叫SqlSession的接口,

此时需要找到实现类,在箭头所指的SqlSession上右键Diagrams -> Show Diagrams

在弹出的菜单中选中SqlSession,右键Show Implementations,在上一节的学习中已经知道了实现类是DefaultSQLSession,选中,在上边状态栏进入该类

在DefaultSQLSession.java中找到getMapper方法,发现调用的是
configuration.<T>getMapper

CTRL+鼠标左键点进去后发现调用的是
mapperRegistry.getMapper

继续CTRL+鼠标左键

Proxy.newProxyInstance //动态代理
Ctrl+左键 MapperProxy

mapperMethod.execute



本文深入探讨了MyBatis框架中动态代理机制的实现原理,通过实例代码详细讲解了如何通过getMapper方法获取Mapper接口的实现类。从SqlSession接口的调用开始,逐步剖析了configuration.getMapper和mapperRegistry.getMapper的内部工作流程,最终揭示了Proxy.newProxyInstance和MapperProxy在动态代理中的关键作用。
2055

被折叠的 条评论
为什么被折叠?



