写application等配置文件时,开始为了使用单元测试,所以把配置文件复制了一份放在根目录下的一个文件夹中,也就没删除,后来通过web.xml启动spring时,总是提示application.xml文件打不开,怎么改文件地址都不对,后来发现是因为两个application文件,虽然在不同的目录下,但是当jvm编译后在classpath下出现了duplicate,所以打不开。换句话说,配置文件有一份就够了,多了,jvm会有歧义。
extend:对于配置文件,jvm会进行编译,这就是为什么我们经常会这样配置:classpath:application.xml。那么classpath是什么位置呢??我做过一些实验,发现其实就是src目录。也就是说不管你放在哪里,最终jvm编译后都会放在src下面。当然前提是经过jvm编译,如果没编译的话,classpath下是找不到的。