我正在开发一个添加了依赖项的Spring Boot应用程序。此依赖项具有spring.xml文件。我正在扫描这个xml文件并创建bean。其中一个bean正在类路径中查找hibernate.properties。我在我的应用程序的resources文件夹下添加了这个属性文件。但是我仍然看到下面列出的例外情况。请你告诉我我错过了什么?
<util:properties id="HibernateProperties" location="classpath:hibernate.properties"/>
java.io.FileNotFoundException:类路径资源 [hibernate.properties]无法打开,因为它不存在
答案 0 :(得分:2)
带有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()方法只返回文件系统 传入的空字符串的位置(表示潜在的根) 搜索)。