我已经对我的项目进行了整理,试图找到处理DEV,预生产和生产属性的正确方法。 我创建了一个名为mule.env的属性,并添加了像
这样的上下文属性<context:property-placeholder location="${mule.env}.properties"/>
我有mule-app.properties和mule-deploy.properties,其内容如下
mule-app.properties
c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev
mule-deploy.properties
c4=c4.p2
c3=c3.p2
redeployment.enabled=true
c2=c2.p2
encoding=UTF-8
config.resources=test-config.xml
domain=default
我在资源下有一个dev.properties,
dev.properties
c1=c1.dev
c2=c2.dev
c3=c3.dev
c4=c4.dev
我有一个流程来显示设置有效负载中的属性
<flow name="test-configFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
<set-payload value="c1:${c1} <br/> c2:${c2} <br/> c3:${c3} <br/> ${mule.env}" mimeType="text/html" doc:name="Set Payload"/>
</flow>
结果是
c1:c1.p1
c2:c2.p1
c3:c3.p1
dev
我希望结果像
c1:c1.dev
c2:c2.dev
c3:c3.dev
dev
因为属性应来自dev.properties
有什么想法吗?
答案 0 :(得分:1)
这很明显,因为在mule-app.properties
包含:
c3=c3.p1
c2=c2.p1
c1=c1.p1
mule.env=dev
这会覆盖资源下dev.properties
的值
解决方案:删除
c3=c3.p1
c2=c2.p1
c1=c1.p1
来自mule-app.properties
。因此,mule-app.properties
应仅包含:
mule.env=dev
,没有其他值