Spring - java.io.FileNotFoundException:无法打开类路径资源,因为它不存在

时间:2016-10-10 18:51:46

标签: java spring spring-boot

我正在开发一个添加了依赖项的Spring Boot应用程序。此依赖项具有spring.xml文件。我正在扫描这个xml文件并创建bean。其中一个bean正在类路径中查找hibernate.properties。我在我的应用程序的resources文件夹下添加了这个属性文件。但是我仍然看到下面列出的例外情况。请你告诉我我错过了什么?

 <util:properties id="HibernateProperties" location="classpath:hibernate.properties"/>
  

java.io.FileNotFoundException:类路径资源   [hibernate.properties]无法打开,因为它不存在

1 个答案:

答案 0 :(得分:2)

Here some doc from spring

  

带有classpath的Ant样式模式:不保证资源   如果要搜索的根包可用,则查找匹配的资源   多个类路径位置。这是因为资源如

     

com / mycompany / package1 / service-context.xml可能只有一个   位置,但是当路径如

     

类路径:COM / myCompany的/ ** /服务context.xml中

所以,

<util:properties id="HibernateProperties" location="classpath*:hibernate.properties"/> 

可能会给你更好的机会。

但是,

  

请注意classpath *:与Ant样式模式结合使用时   只能在至少一个根目录之前可靠地工作   模式开始,除非实际目标文件驻留在文件中   系统。这意味着像classpath *:*。xml这样的模式不会   从jar文件的根目录中检索文件,而不仅仅是从   扩展目录的根目录。这源于对的限制   JDK的ClassLoader.getResources()方法只返回文件系统   传入的空字符串的位置(表示潜在的根)   搜索)。