我不能看到他們在domain.xml中或host.xml
他們是否有權利在<server>
用於獨立或<domain>
頂級域一樣,
<server xmlns="urn:jboss:domain:1.7">
...
<system-properties>
<property name="myapp.env" value="dev"/>
</system-properties>
...
</server>
那麼Spring可以將其視爲${myapp.env}
或任何其他代碼作爲系統特性。
他們可以從JBoss的管理控制檯,最底部有「系統屬性」中進行設置以及在「配置」選項卡 - 它實際上是在domain.xml中是<system-properties>
標籤的內容
此外,他們可以使用在domain.xml中。 作爲例子,如果你有根據環境不同目錄的myapp.properties文件,你可以做到這一點是:
<server xmlns="urn:jboss:domain:1.7">
...
<system-properties>
<property name="myapp.env" value="dev"/>
<property name="myapp.config.file" value="${myapp.env}/myapp.properties"/>
</system-properties>
...
所以到文件路徑將是dev/myapp.properties
和Spring將看到它作爲$ {MYAPP .config.file}然後可以從那裏加載屬性。
PS。此外,正如我記得具體的系統屬性可以在模塊定義甚至在應用程序部署描述符jboss-deployment-structure.xml
- 不知道最後一個...順便說一句,你的問題不是由環境區分的問題。
PPS。關於.properties如何存儲在文件系統中 - 將它們保存在JAR文件中是一個壞主意。每當某個屬性發生更改時,都需要重建和部署。
.properties文件可以避免這種情況。所以他們必須在部署之外。
因此它取決於組織網絡策略。
一旦有一段時間是NFS目錄中包含dev_myapp.properties不同的文件名,test_myapp.properties等
其他時候它是一個NFS目錄的子目錄帶 - 開發,測試等使用相同的文件名每一個。
在我目前的組織中,NFS是不允許的。羣集中的每個從屬實例都擁有自己的文件克隆,它們的位置完全相同,即config/myapp.properties
。所以,只有一個系統屬性被定義爲該文件的路徑。每個環境都有自己的文件版本。
祝你好運!