我有幾次遇到同樣的問題,我想對其他人對此問題的看法有所瞭解: 假設我們將Spring應用程序打包爲.war文件,我們想運行它在幾個環境。 (開發/測試/ preprod/prod /等)在Spring Web應用程序中處理配置文件
爲了訪問應用程序所需的基礎架構(數據庫/ web服務等),我們將訪問信息存儲在配置文件中,同時一些業務配置也在這些文件中。 假設我們使用.properties文件(因爲我們在戰爭中有一個彈簧應用程序,並且我們喜歡通過appcontext中的一行代碼讀取屬性) 並且還假設在不同的環境中我們不會沒有相同的appserver/servlet容器。 (例如:開發,測試:碼頭,preprod:tomcat的,PROD:GlassFish的)
我通常做的是創建多個Maven的型材,每個環境,每個相應的文件所需的配置。
現在最近我遇到了一個運行操作的人的問題: '如果在preprod環境中更改了數據庫,那麼我們真的必須在buildserver上生成具有適當配置文件的新版本? 我回答'不,你可以真正去....../webapps/currentApp/WEB-INF/classes/config/application.properties並在那裏更改值,然後重新啓動容器'
我們想出了一個解決這個問題的一些方面的解決方案: 使用Maven彙編插件我們在裏面嵌入了一個Jetty 這個戰爭使得它可以用作'可執行的'戰爭,同時也使我們有可能擁有一個全局配置XML, 嵌入式Jetty的入門者在分解的war目錄中創建/修改適當的.properties文件,然後才啓動應用程序。
但是,如果您想使用除Jetty以外的其他任何內容,這也不能解決問題。
大家怎麼處理同樣的情況?
感謝你的回答,有趣的方法,看起來像值得一試。 – abalogh 2011-05-12 10:13:33