struts源码分析:commons-logging

    初次使用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

第一次写。见谅。

"Unresolved dependency: 'commons-logging:commons-logging:jar:unknown'" 这个错误通常发生在Maven或Gradle构建工具中,表示项目依赖于`commons-logging`库的一个未知版本。这个错误可能是由于以下几个原因: 1. **依赖声明缺失**:检查你的项目的pom.xml(Maven)或build.gradle(Gradle)文件,确认`commons-logging`模块是否已经添加到dependencies块,并且版本信息已正确指定。 ```xml <!-- Maven 示例 --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> <!-- 替换为你需要的实际版本 --> </dependency> // Gradle 示例 implementation 'commons-logging:commons-logging:1.2' // 同样替换为实际版本 ``` 2. **网络连接问题**:确保你的网络连接正常,因为某些时候仓库可能无法访问。尝试清理本地的maven或gradle缓存,然后重新同步依赖。 ```bash # Maven 清理 mvn clean mvn install # Gradle 清理 ./gradlew clean --refresh-dependencies ``` 3. **更新仓库列表**:如果你的POM.xml或build.gradle里指定了特定的仓库URL,确认这个仓库包含了你需要的版本。如果不确定,可以尝试将本地仓库设置为中央仓库或其他公共仓库。 4. **使用替代包**:有时,项目可能会推荐使用其他库来替代`commons-logging`,如`log4j`或`slf4j`等。查看文档看是否有替代方案。 5. **检查版本冲突**:如果有多个依赖有对`commons-logging`的不同版本引用,确保它们不会互相冲突。你可以使用插件如Maven Dependency Analyzer或Gradle的Dependency Graph查看潜在冲突。 如果以上步骤都不能解决问题,检查错误日志的详细信息,或者尝试在开发者社区寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值