spring引入的第三方jar文件

最近在看spring的源 码,这里想到一个问题,以spring 5.1.6为例。在引入spring源 码时,会发现sring引入了好多的第三方的jar,而我们平时在用spring的时候(pom里导入sping),从ide里可以看到,并没有因为spring的加入,而间接的加入spring源 码时所需要的第三方的jar。
比如说,spring-core,spring—support,在源 码编译的时候,会需要jms hibernate这会jar,可是我们在用spring的时候,如果项目里没有spring源 码编译的类时,按说要报classnotfound吧,可是从现象上看,并没有报classnotfound,这是为什么了,什反原理。
总结一下,我不明白的地方在于,我认为spring源 码里引入了大量的第三方的库,而我的classpath里又没有这些,我们的项目应该在加载spring某个类时(spring源 代码里引入的第三方的jar,也就是第三方的类),源 码里引入的类,而我们classpath,也就是项目里没用时,应该报错吧,为什么能成功加载呢?不然的话,classnotfound又是什么意义,又有什么用呢?

img
在这里你可以看到,spring到底有没有被引入进入,另外classnotfound不一定是spring,有可能是你的类没有进行映射或者你的类名有重复的只是不在同一个包下,这样导致你用这个类很可能引入路径错误等等·