初次使用struts,感觉功能很强大,就下了一个struts源代码,看看,不对之处,还请各位指教。
这几天看的是commons-logging包,虽说没有看完,不过也懂得了一点皮毛。
最主要的是org.apache.commons.logging.Log和org.apache.commons.logging.LogFactory两个类。其实在commons-logging文档中说明的很清楚。 每个类都是做什么的。我这里只是随便说一下:
LogFactory调用getFactory()时将获得一个LogFactory的子类。其中支持Log4jFactory,LogFactoryImpl,
如果CLASSPATH中存在commons-logging.properties文件,会去找org.apache.commons.logging.LogFactory对应的类名。并且把commons-logging.properties中的信息存入到Hashtable(factory)中。生成相应的LogFactory子类。
如果没有commons-logging.properties文件,会加载LogFactoryImpl,由它来生成Log类。
在LogFactoryImpl中的getLogConstructor()中加载相应的Log类.首先查看由前面接收过来的Hashtable中是否含有org.apache.commons.logging.Log的关键字,如有,加载相应的类。如没有,查看是否有Log4JFactory支持的包。如有,加载,没有使用默认的Log
第一次写。见谅。