propertiesElement(root.evalNode("properties"));//issue#117readpropertiesfirst
//2.处理typeAliases
typeAliasesElement(root.evalNode("typeAliases"));
//3.处理插件
pluginElement(root.evalNode("plugins"));
//4.处理objectFactory
objectFactoryElement(root.evalNode("objectFactory"));
//5.objectWrapperFactory
objectWrapperFactoryElement(root.evalNode("objectWrapperFactory"));
//6.settings
settingsElement(root.evalNode("settings"));
//7.处理environments
environmentsElement(root.evalNode("environments"));//readitafterobjectFactoryandobjectWrapperFactoryissue#631
//8.database
databaseIdProviderElement(root.evalNode("databaseIdProvider"));
//9.typeHandlers
typeHandlerElement(root.evalNode("typeHandlers"));
//10mappers
mapperElement(root.evalNode("mappers"));
}catch(Exceptione){
thrownewBuilderException("ErrorparsingSQLMapperConfiguration.Cause:"e,e);
}
}
注意:在上述代码中,还有一个非常重要的地方,就是解析XML配置文件子节点<mappers>的方法mapperElements(root.evalNode("mappers")), 它将解析我们配置的Mapper.xml配置文件,Mapper配置文件可以说是MyBatis的核心,MyBatis的特性和理念都体现在此Mapper的配置和设计上,我们将在后续的文章中讨论它,敬请期待~
3. 然后将这些解析出来设置到Configuration对象中。
解析子节点的过程这里就不一一介绍了,用户可以参照MyBatis源码仔细揣摩,我们就看上述的environmentsElement(root.evalNode("environments"));方法是如何将environments的信息解析出来,设置到Configuration对象中的:
/*
解析environments节点,并将结果设置到Configuration对象中
注意:创建envronment时,如果SqlSessionFactoryBuilder指定了特定的环境(即数据源);
则返回指定环境(数据源)的Environment对象,否则返回默认的Environment对象;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40254-4.html
怎么感觉美佬象个小孩
多干事
Fxfighting