![](/img/trans.png)
[英]Read properties from database and use it instead of mule-app.properties
[英]Accessing mule-app.properties in custom properties file located in src/main/resources on cloudhub
我有一個使用m子apikit構建的m子應用程序。 mule-app.properties文件包含以下屬性:
orig.db.url=jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;
定制屬性文件src / main / resources / dev.properties包含以下屬性:
db.url=${orig.db.url}
並且,m子配置xml文件包含以下property-placeholder:
<context:property-placeholder location="dev.properties"/>
現在,當我在本地部署它時,一切正常,並且能夠運行該流程。 但是,同時在Cloudhub上進行部署時,它給了我以下例外:
Invalid bean definition with name 'get:/total_amount:total_amount-db-config' defined in null: Could not resolve placeholder 'orig.db.url' in string value "jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;"
我不明白我在這里想念什么?
mule-app.properties將被添加到系統屬性而不是類路徑屬性。 我們無法從添加到類路徑的屬性文件中引用系統屬性。 我們需要將這些屬性移到類路徑以在運行時解決這些問題。
通過使用以下命令導入mule-app.properties來覆蓋此行為的一種方法:
<context:property-placeholder location="mule-app.properties,dev.properties”/>
它告訴彈簧按各自的順序加載屬性。 因此,首先加載了mule-app.properties,然后是dev.properties。
但是,將mule-app.properties文件包含在類路徑中不是最佳實踐。 最好的方法是從mule-app.properties中刪除dev屬性,並將其放入dev.properties中。
默認情況下,當部署到cloudhub時,來自mule-app.properties的所有屬性都應顯示在properties選項卡中。 第一次部署時沒有看到它們嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.