从品牌网站建设到网络营销策划,从策略到执行的一站式服务
本篇内容介绍了“iBATIS的Log机制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联建站-专业网站定制、快速模板网站建设、高性价比会宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式会宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖会宁地区。费用合理售后完善,十多年实体公司更值得信赖。
iBATIS的Log机制的问题我们要首先从iBATIS的Log使用的两个类开始,他们是:
com.ibatis.common.logging.LogFactory
com.ibatis.common.logging.Log
查看这两个类的源代码,可以发现它不过是对org.apache.commons.logging、org.apache.log4j、java.util.logging,三种目前可用的Log框架的同时封装。
开始时很费解,不知iBATIS开发者为何要采用这种方式,直接使用某个确定的Log不就可以了吗?思考后发现原因如下:
“iBATIS宣称自己具有最少的第三方依赖性,其Log采用以上机制的原因也正在于此:如果iBATIS采用某个特定的Log框架,那么它就必须添加对该框架的依赖关系;而考虑到使用iBATIS的开发者肯定会使用以上三个Log框架中的某个,因此iBATIS决定与其使用者共用该框架;这样iBATIS就可以避免不必要的第三方依赖;另外,如果开发者的确没有使用某Log框架,查看iBATIS的Log代码可以发现它对此也有相应措施,即不log出任何东西。”
思考明白以上原因后,再查看com.ibatis.common.logging.LogFactory的代码,就不难理解了,但还是说明几个小点:
private static void tryImplementation(String testClassName, String implClassName) ...{ if (logConstructor == null) ...{ try ...{ Resources.classForName(testClassName); Class implClass = Resources.classForName(implClassName); logConstructor = implClass.getConstructor(new Class[]...{Class.class}); } catch (Throwable t) ...{ } } }
testClassName为某Log框架中的工厂类的类名,implClassName为该框架相应Log接口实现类的类名(该类属于iBATIS)。代码先加载工厂类,然后加载实现类,得到其class,并由class得到constructor,供getLog方法调用时使用。
“iBATIS的Log机制是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图