java-Spring:PropertyPlaceholderConfigurer找不到属性文件
作者:互联网
我对Spring使用PropertyPlaceholderConfigurer有一个奇怪的问题.我的一颗豆的设计如下:
<bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
问题是spring永远找不到jdbc.properties(FileNotFoundException).该文件位于捆绑包类路径中的名为“ resources”的文件夹中(我在OSGi项目中工作).
我尝试了几乎所有组合(“ jdbc.properties”,“ / jdbc.properties”,“ classpath:jdbc.properties”,“ classpath:/jdbc.properties”,“ / resources / jdbc.properties”等). ),但它永远无法正常工作.
对于信息,如果有的话,我会做一些类似的事情:
URL u = someClassLoader.getResource("jdbc.properties");
它确实可以正常工作并找到文件.实际上,我完全无法理解spring的错误.
如果您有任何帮助的想法,请先感谢.我在春天不太有经验,所以我可能在某个地方犯了一个错误.
[编辑]
实际上,这是类加载器的问题:
如果我做 :
new ClassPathResource("jdbc.properties");
它不起作用.但是:
new ClassPathResource("jdbc.properties",someClassIntheBundle.class.getClassLoader());
完美地工作.
我确实相信Spring使用自己的软件包所消耗的ClassLoader.您知道解决这个棘手问题的方法吗?
谢谢,
解决方法:
尝试classpath *:jdbc.properties
标签:properties,osgi,classpath,spring,java 来源: https://codeday.me/bug/20191208/2088235.html