Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1794|回复: 0
打印 上一主题 下一主题

Mybatis源码学习

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
跳转到指定楼层
楼主
发表于 2019-1-14 17:30:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 java 于 2019-1-14 17:32 编辑

看源码学习的东西很多

SqlSessionFactory  全局跟容器一起 application级别
SqlSession  request/method级别
Mapper     method级别 Spring不一样



MapperProxyFactory
MapperProxy
Mapper

动态代理  接口变实例

Proxy.newProxyInstance(mapperInterface.getClassLoader(), new Class[] {mapperInterface }, ...)


com.gupaoedu.mybatis.mapper.TestMapper
com.gupaoedu.mybatis.mapper.TestMapper@12344
org.apache.ibatis.binding.MapperProxy@653444

MapperProxy
Mybatis源码不实现对象实现类,会调用自己实现的

MapperMethod.java
selectOne -> selectList -> Executor.query



抽象类中定义模板流程 增加可扩展性

装饰器模式是 委托模式的一种
被包装类与这个类是不是同源的即同一个父类,就是装饰器模式






MyBatis5.png (89.37 KB, 下载次数: 622)

MyBatis5.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-23 03:38 , Processed in 0.061567 second(s), 23 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表