mybatis解析加载配置文件
2022-03-03 10:24:54 0 举报
mybatis根据mybatis-config.xml加载,解析属性properties,settings,typeAliases,pluginElement,objectFactory,databaseIdProvider,typeHandlers,mappers等流程
作者其他创作
大纲/内容
如果configuration.MapperRegistry.knownMappers包含该接口
解析属性objectFactory
根据resource读取配置文件
resource&url!=null?
解析属性pluginElement
处理子节点transactionManager开始
处理子节点datasource结束
Document加载配置文件
将属性保存到XPathParser.variables
实例化Class为DataSourceFactory
根据url加载远程文件
遍历每个子节点
设置TransactionFactory的属性
获取属性type
获取type属性值
设置插件的属性
解析属性environments
获取节点的子属性
实例化Class为TransactionFactory
configuration.getVariables!=null
根据configuration.getTypeAliasRegistry.typeAliases(type)获取Class
实例插件
否则
解析配置文件
解析属性databaseIdProvider
id=environment?
结束报错
环境environment=null?
遍历节点列表
节点name=package?
获取environment.datasource的connection.metadata.DatabaseProductName
解析属性typeHandlers
获取属性javaType,jdbcType,handler
configuration.addMappedStatement
保存到configuration.objectFactory
解析属性settings
节点类型是package?
读取配置文件的setting
配置DTD类XMLMapperEntityResolver
对应的value值作为datasourceId设置到 configuration.setDatabaseId
遍历每个resultChildMapNode
保存到configuration.sqlFragments
设置DatabaseIdProvider属性
解析select|insert|update|delete
实例objectWrapperFactory
获取子属性列表
保存成ResultMapping
遍历子节点列表
遍历每个类
保存到configuration.reflectorFactory
获取当前节点的子属性
保存到configuration.objectWrapperFactory
environment=default属性值
url!=null
设置objectFactory属性
保存到configuration.typeHandlerRegistry...
获取包下的所有类
实例化Class为DatabaseIdProvider
报错结束
解析xmlResource
设置DataSourceFactory的属性
如果configuration.getDatabaseId==属性databaseId
遍历当前包下的所有接口
resource!=null
获取属性interceptor值
解析属性objectWrapperFactory
结束
解析属性reflectorFactory
解析/mapper/sql
实例reflectorFactory
处理子节点transactionManager结束
实例objectFactory
设置configuration.xxx各个全局属性
保存到configuration.resultMap
properties[i].key=databaseproductName?
解析属性typeAliases
遍历每个resultMapNode
设置到属性配置中
读取配置文件的property
将属性保存到Configuration.variables
解析属性mappers
解析属性properties
保存到configuration.environment
处理子节点datasource开始
获取属性Id
加载配置文件
遍历DatabaseIdProvider属性
保存到configuration.interceptorChain.interceptors
解析/mapper/resultMap
收藏
收藏
0 条评论
下一页