Java Spring:PropertyPlaceHolderConfigure找不到属性文件

Java Spring:PropertyPlaceHolderConfigure找不到属性文件,java,spring,properties,classpath,osgi,Java,Spring,Properties,Classpath,Osgi,使用属性PlaceHolderConfigure时,Spring出现了一个奇怪的问题。我的一个bean设计如下: <bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:jdbc.

使用
属性PlaceHolderConfigure
时,Spring出现了一个奇怪的问题。我的一个bean设计如下:

<bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>classpath:jdbc.properties</value>
    </property>
</bean>
它可以毫无问题地找到文件。其实我完全无法理解spring的bug是什么

如果你有任何想法来帮助我,提前谢谢。我在春天不是很有经验,所以我可能在某个地方犯了一个错误

[编辑]

实际上,这是类加载器的问题: 如果我这样做:

new ClassPathResource("jdbc.properties");
它不起作用。但是:

new ClassPathResource("jdbc.properties",someClassIntheBundle.class.getClassLoader());
工作完美

我确实相信Spring使用了它自己的包的类加载器,而我的包使用了这个类加载器。你知道解决这个棘手问题的方法吗


谢谢,

试试
classpath*:jdbc.properties
资源加载进行了一些更改。如果没有提供其他前缀,由osgi的默认
ApplicationContext
实现的
ResourceLoader
将自动挂起
osgibundle:


使用
classpath:
时搜索的路径与使用
classpath*:
时使用的路径似乎在范围上有所不同,但迄今为止,我无法找到一个很好的解释。

感谢链接。我可能错过了。在所有情况下,我都需要调查一些“奇怪”的事情(使用classpath*:,它确实找到了属性文件,但仍然无法解析占位符。它可能根本没有链接,但我不确定…@ThR37:我目前无法找到它的文档,但我确实记得在
PropertyPlaceholderCon中加载属性时,属性令牌解析存在一个缺点父级
ApplicationContext
中的figuer
是从
导入
ed
ApplicationContext
引用的。实际上,它不再抱怨,但也找不到位置:s感谢您的帮助。您知道类路径的主要区别是什么吗:?很抱歉回答太长。您可以当然,您可以创建PropertyPlaceHolderConfigure的子类,并使用
myConfigure.class.getResourceAsStream()
加载道具文件。目前,我必须在配置文件中放入可怕的静态路径进行测试(如bundle)eresource://63.jhdjlzeo:2/jdbc.properties (与之配合).我没有找到任何其他解决方案(参见下文的其他评论)
new ClassPathResource("jdbc.properties",someClassIntheBundle.class.getClassLoader());