Spring 适用范围性能骡用夹持器弹簧
我正在使用Mule CE 3.3.0,我对PropertyPlaceHolder的范围有问题。假设我有两个mule应用程序writeApp和readApp。在writeApp应用程序中,我设置了一个PropertyPlaceHolerbean,定义如下:Spring 适用范围性能骡用夹持器弹簧,spring,mule,placeholder,Spring,Mule,Placeholder,我正在使用Mule CE 3.3.0,我对PropertyPlaceHolder的范围有问题。假设我有两个mule应用程序writeApp和readApp。在writeApp应用程序中,我设置了一个PropertyPlaceHolerbean,定义如下: <spring:bean id="consignmentProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<spring:bean id="consignmentProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<spring:property name="ignoreUnresolvablePlaceholders" value="true"/>
<spring:property name="locations">
<spring:list>
<spring:value>classpath:connections.properties</spring:value>
<spring:value>.....</spring:value>
</spring:list>
</spring:property>
</spring:bean>
在readApp应用程序中,我尝试读取writeApp中定义的属性
<mule>
<flow name="readContextVariableFlow1" doc:name="readContextVariableFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8085" path="read" doc:name="HTTP"/>
<append-string-transformer message="${prop.conn}" doc:name="Append String"/>
<object-to-string-transformer doc:name="Object to String"/>
</flow>
</mule>
问题是现在我可以从readApp读取prop.conn属性,尽管它是在writeApp中定义的。我可以为每个应用程序定义一个特定的文件属性
提前感谢您提供的任何帮助您可以命名您的属性以防止交叉共享,如readApp.prop.conn和writeApp.prop.conn 或者,尝试关闭系统属性:
<spring:beans>
<context:property-placeholder location="classpath:connections.properties"
ignore-unresolvable="true" system-properties-mode="NEVER" />
</spring:beans>
当你说应用程序时,你真的是指Mule应用程序,即部署在Mule单机版上的zip文件,而不是流,对吗?是的,我指的是Mule应用程序,即zip文件,谢谢你的精确性。然后,哇,这是令人惊讶的,除非Spring在一个应用程序的系统属性中加载这些道具,并从另一个应用程序的系统道具中获取它们。你为什么直接使用PropertyPlaceHolderConfigure类而不是元素。是的,我知道,但我希望在两个不同的mule应用程序中避免一个文件而不是另一个文件的可见性好的,你知道是否有可能只为一个应用程序使用一个配置文件,而不在应用程序之间共享?我想是这样的,我不明白一个应用程序中加载的属性如何可用于另一个应用程序,除非它们也作为系统属性加载和解析。你试过我的第二个建议了吗?你的意思是使用.*符号吗?是的,这是可行的,但我的特权应该是让一个文件只对一个应用程序和您的解决方案可见,尽管这是一个智能解决方案,但它并不能解决我粘贴代码时遇到的问题,我遇到了以下错误:src resolve:无法将名称“spring上下文:属性占位符”解析为“元素声明”组件。