问题描述
下载为:spring-framework-3.0.0.M4.zip(sha1)20.6 MB中不包含org.aopalliance包,找不到org.aopalliance.aop.Advice类,为什么? 难道不属于Spring包中的吗 问题补充:为什么不包含AOP所需要的包org.aopalliance呢,2.5的包中是包含的吧。3.0就没有了,我郁闷 spring这是什么意思,为什么要这么做呢,有什么好处啊
解决方案
下图是spring-2.5.6.jar的代码结构,我们可以看到Spring是直接把AopAlliance的代码拷贝在了他的工程里,这样做可能是为了减少Jar包依赖。有趣的是,spring在打source包的时候,却没有把aopalliance的代码打进源码包。spring到3.0时代,貌似又新增了几个工程,结构也有所变化。aopalliance的代码没有出现在任何一个spring的子包里,所以如果不手工引入的话,就报ClassNotFound了。希望对你有帮助。
解决方案二:
你下载的核心包,你打开包看,核心包里面包含了所有的包,没必要在下载其他包,你自己进去找下,在某个package中
解决方案三:
aopalliance-1.0.jar包要另外下载的,如果使用maven管理的话,会间接依赖下来的。spring-aop也依赖了很多第三方库,如aspectjrt、aopalliance、aspectjweaver等。
时间: 2024-08-22 15:18:32