五(补充一)、Mybatis中Mapper代理方式
从五、仿MyBatis自定义的持久层如何添加增删查改功能中可以知道Mybatis的实现核心就是Mapper代理执行sql获取业务数据。在测试案例中,使用如下代码即可得到相应业务数据。
通过Mybatis源码分析可以知道自定义实现完全体现的Mybatis的核心本质实现:mapper通过XMLConfigBuilder解析保存在Congiguration中,下面分析关于mapper属性的的UML图:
查看MapperProxy源码
可知mapper方式处理,使用JDK动态代理,调用其invoke方法。invoke方法调用MapperMethod中的execute方法。通过查看源码,可以知道代理方法里面调用的是MyBatis提供的传统的访问接口: