我遇到了一个奇怪的问题。 我有一个mule配置文件。没有什么是令人兴奋的,并且工作正常。至少它起作用了......
当我开始将配置参数放入多个属性文件时,问题就开始了。如果我在一个文件中定义一个属性,它将被解析,但不会从另一个文件中解析。
没有错误消息表明读取文件失败或任何事情......
我的场景告诉我,这与配置文件由org.mule.config.spring.SpringXmlConfigurationBuilder ...
读取的事实有关。有没有人有过类似的问题?或者有谁知道到底发生了什么?
答案 0 :(得分:1)
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:my-mule-app.properties</value>
<value>classpath:my-mule-app-override.properties</value>
</list>
</property>
</bean>
答案 1 :(得分:0)
我不确定您是如何配置上下文占位符的,但如果您使用多个属性,则应声明以逗号分隔的位置列表,如下所示:
<context:property-placeholder
location="classpath:my-mule-app.properties,
classpath:my-mule-app-override.properties" />
如果您需要任何进一步的信息,可以找到它们 关于主题的the official documentation page
答案 2 :(得分:0)
谢谢你们。
所以这个神秘的问题已经解决了。在我的集成测试中,我需要一个启动的hornetq / mule服务器对。对于测试,我想从通常的spring XML配置中注入所有可能的对象。 所以我在spring XML配置文件中定义了我的MuleServer bean,并使用了将mule的配置文件作为String数组的构造函数。我没有意识到(或没有想过)MuleServer类创建自己的应用程序上下文...
所以在我的测试应用程序上下文中,我实例化了一个创建自己的应用程序上下文的对象......
由于Property占位符是某种特殊bean,必须在所有其他bean之前初始化,这会导致上述奇怪的行为。
解决方案是我在测试setUp方法中使用new关键字实例化MuleServer。
这对我有用。