1.TypeAliasRegistry
private final Map<String, Class<?>> TYPE_ALIASES = new HashMap<String, Class<?>>();
1.1)主要存储不同Java类型的别名的汇总
1.2)操作数据库的数据源事务管理器
1.3)操作数据库的连接池配置
1.4)Mybatis日志管理工具类
....
2.MapperRegistry
private final Map<Class<?>, MapperProxyFactory<?>> knownMappers
= new HashMap<Class<?>, MapperProxyFactory<?>>();
key值为 定义的*Mapper接口的类型,value值为*Mapper接口的动态代理类 MapperProxyFactory
2.1) 如果mybati-config. 文件中mapper节点配置的是
<mapper resource=\"mapper/UserMapper. \"/>
解析步骤:
2.1.1) 把*Mapper. 中的信息封装到Configuration类中的属性mappedStatements容器中
2.1.2) 根据*Mapper文件中mapper的namespace属性的值,来初始化MapperRegistry类中
的knownMappers容器
2.2) 如果mybati-config. 文件中mapper节点配置的是
<mapper class=\"com.roger.mybatis.mapper.UserMapper\"/>
解析步骤:
2.2.1) 直接根据class属性的值,得到*Mapper接口的类型,然后初始化MapperRegistry类中
的knownMappers容器
2.2.2) 然后通过上面*Mapper的类型,得到接口的全路径名称 然后添后缀. 拼接成*Mapper
接口对应的 文件
2.2.3) 根据2.2.2得到的 文件来解析封装到Configuration类中的属性mappedStatements容器中
3.MappedStatement
3.1) 资源文件路径 -- resouce ,就是在配置文件中通过 文件来配置*Mapper的
3.2) namespace + 方法名 --> id
3.3) sql语句 -->sqlSource
3.4) sql查询的结果接映射成的java类型 resultMaps
3.5) sql语句命令类型SELECT,INSERT... --->sqlCommandType
4.MapperProxyFactory
4.1) *Mapper接口类型
4.2) Map<Method, MapperMethod> methodCache ; 容器key值是当前执行的方法的方法类型
5.MapperMethod
5.1) sql语句命令类型---SELECT,INSERT.... --->由MappedStatement类来构造
5.2) 方法签名 -->接口方法的返回类型,参数解析器等
继续阅读与本文标签相同的文章
上一篇 :
实体寒冬,社群卖货靠谱吗?
-
关注盲人群体 美团推出语音点外卖应用
2026-05-19栏目: 教程
-
卡特马克让制造走向“智造”,百年厨具品牌走向智能化
2026-05-19栏目: 教程
-
拼多多盘初涨逾2%,回应腾讯退出母公司股东行列为正常变化
2026-05-19栏目: 教程
-
Android 10在用户权限方面有何调整?现在真的更安全了吗?
2026-05-19栏目: 教程
-
Alex Kipman:视网膜投影技术将成为AR眼镜最佳代替方案
2026-05-19栏目: 教程
