mybatis原理

Posted june0816

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis原理相关的知识,希望对你有一定的参考价值。

一、静态代理

可以为一个接口生成一个代理类,代理类去操作这个接口的具体实现类

 

二、动态代理

1. 可以为多个接口生成同一个代理类,代理类去操作这个接口的具体实现类

2. 通过拦截器方法的回调,对目标target方法进行增强

 

三、mybatis原理

1. mybatis使用动态代理,生成了接口的代理类 org.apache.ibatis.binding.MapperProxy

2. 代理类也做了实现类的工作,通过xml和实现类的映射关系,执行sql

3. mybatis使用方法的全限定名作为key,去xml寻找唯一的sql去执行,因此接口Mapper内的方法不能重载

 

四、可以使用JDK动态代理自定义一个MapperProxy,跟mybatis的源码比较

 

以上是关于mybatis原理的主要内容,如果未能解决你的问题,请参考以下文章

mybatis入门一:mybatis框架原理

MyBatis 的工作原理解析

MyBatis源码分析插件实现原理

mybatis插件机制原理

MyBatis——运行原理

Mybatis 的架构原理解读