为什么Mapper接口不需要实现类 ?

一、动态代理,我们来看一下获取Mapper的过程:


获取Mapper

我们都知道定义的Mapper接口是没有实现类的,Mapper映射其实是通过动态代理实现的

获取Mapper的过程,需要先获取MapperProxyFactory——Mapper代理工厂


MapperProxyFactory

MapperProxyFactory的作用是生成MapperProxy(Mapper代理对象)

这里可以看到动态代理对接口的绑定,它的作用就是生成动态代理对象(占位),而代理的方法被放到了MapperProxy


MapperProxy

MapperProxy里,通常会生成一个MapperMethod对象,它是通过cachedMapperMethod方法对其进行初始化的,然后执行excute方法


MapperMethod

MapperMethod里的excute方法,会真正去执行sql。这里用到了命令模式,其实绕一圈,最终它还是通过 SqlSession的实例去运行对象的sql

posted @ 2025-04-27 14:20  jock_javaEE  阅读(21)  评论(0)    收藏  举报