b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mybatis原理_mybatis和ibatis区别_mybatis基本工作原理(3)

电脑杂谈  发布时间:2017-04-08 21:01:09  来源:网络整理

publicSqlSessionFactorybuild(Configurationconfig)

{

returnnewDefaultSqlSessionFactory(config);

}

上述的初始化过程中,涉及到了以下几个对象:

SqlSessionFactoryBuilder : SqlSessionFactory的构造器,用于创建SqlSessionFactory,采用了Builder设计模式

Configuration :该对象是mybatis-config.xml文件中所有mybatis配置信息

SqlSessionFactory:SqlSession工厂类,以工厂形式创建SqlSession对象,采用了Factory工厂设计模式

XmlConfigParser :负责将mybatis-config.xml配置文件解析成Configuration对象,共SqlSessonFactoryBuilder使用,创建SqlSessionFactory

接着上述的 MyBatis初始化基本过程讨论,当SqlSessionFactoryBuilder执行build()方法,调用了XMLConfigBuilder的parse()方法,然后返回了Configuration对象。那么parse()方法是如何处理XML文件,生成Configuration对象的呢?

1. XMLConfigBuilder会将XML配置文件的信息转换为Document对象,而XML配置定义文件DTD转换成XMLMapperEntityResolver对象,然后将二者封装到XpathParser对象中,XpathParser的作用是提供根据Xpath表达式获取基本的DOM节点Node信息的操作。如下图所示:

2. 之后XMLConfigBuilder调用parse()方法:会从XPathParser中取出 <configuration>节点对应的Node对象,然后解析此Node节点的子Node:properties, settings, typeAliases,typeHandlers, objectFactory, objectWrapperFactory, plugins, environments,databaseIdProvider, mappers

publicConfigurationparse()

{

if(parsed)

{

thrownewBuilderException("EachXMLConfigBuildercanonlybeusedonce.");

}

parsed=true;

//源码中没有这一句,只有parseConfiguration(parser.evalNode("/configuration"));

//为了让读者看得更明晰,源码拆分为以下两句

XNodeconfigurationNode=parser.evalNode("/configuration");

parseConfiguration(configurationNode);

returnconfiguration;

}

/*

解析"/configuration"节点下的子节点信息,然后将解析的结果设置到Configuration对象中

*/

privatevoidparseConfiguration(XNoderoot){

try{

//1.首先处理properties节点


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40254-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 卫宣公
      卫宣公

      不管是外在的软实力还是内在的硬实力

    热点图片
    拼命载入中...