0
我有一個Tomcat 7(.0.42)實例,它有lib/hosts目錄(在$ {catalina.base}中更具體),多個主機特定的屬性(例如qa1.properties,qa2.properties等)。
當試圖加載屬性文件,它使用:
applicationContext.getResource("classpath:hosts/qa1.properties").exists()
失敗,因爲存在()返回假。該文件顯然在主機子目錄下。如果文件被複制/移動到LIB目錄,它通過調用類似的代碼工作正常:
applicationContext.getResource("classpath:qa1.properties").exists()
Spring的實現類使用ClassPathResource在這裏使用,其調用
return this.classLoader.getResource("hosts/qa1.properties");
和ClassLoader實例是org.apache.catalina.loader.WebappClassLoader
根據Spring規範,l ocation可以指定子目錄(如classpath:/ path/to/file)。它怎麼不在這裏工作?