博主最近在学习spring,在applicationContext.xml配置文件中有一行代码
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
用途是分模块开发将关于jdbc的内容从applicationContext中拿出。
可以看出我的文件目录结构是applicationContext.xml和jdbc.properties同级目录。那么这里的classpath代表的到底是哪一路径呢,这里直接给出结论:classpath实际上就是resources目录。
原因需要从target目录中寻找。
我们都知道,jvm执行的实际上是.java文件编译之后的.class文件,target目录中生成的是整个java项目编译之后的内容,所以我们看target目录中的文件结构是最合理的。
在这里的目录中,我们可以看到原本的项目目录结构被改变了,左边是target目录中的结构,右边是test目录中结构。这里可以看出,test目录中原本在resources目录中的内容全部移动到了test-class目录下,和com目录同级,resoucres目录消失了,所以实际上classpath所指的目录是项目路径test-class,但是说成源文件中的resources目录也没问题。