2011-07-30 46 views
1

我正在開發一個使用Spring MVC和Hibernate的Web應用程序,我希望將其打包爲WAR文件並分發給用戶以在需要時進行部署。使用默認用戶的Spring MVC Web應用程序

應用程序在部署之前需要數據庫連接的詳細信息,任何人都可以建議如何做到這一點的最佳做法?目前我的database.properties文件被打包爲WAR文件的一部分,有沒有比讓用戶在WAR文件或源文件中手動編輯此文件更簡單的方法,然後期望他們自己構建war文件?

我還想讓用戶在首次輕鬆部署時創建單個管理員用戶的簡單方法 - 最好是僅提供一個SQL腳本來創建該腳本,或者有辦法在Web應用程序中包含這些功能首先部署它創建用戶?

感謝

回答

0

由於Web應用程序沒有聚焦到「量產」,我不知道,如果這樣的事情是可能的。

您可以創建一個SQL腳本,其中包含由「IF NOT EXISTS」限制的所有CREATE語句,以避免刪除現有數據。 Hibernate可以在創建SessionFactory的時候執行一個sql腳本,如果Hibernate發現位於classpath根目錄下名爲「import.sql」的文件,Hibernate會執行它。此外,您始終可以編輯已部署的應用程序的database.properties,而無需重新打包WAR。

+0

謝謝 - 是否可以從部署的正在運行的應用程序中編輯database.properties文件?我認爲它可以默認使用內存數據庫設置,允許用戶部署和登錄,然後他們可以編輯數據庫屬性以通過一些Web UI管理面板指向正確的數據庫? – rhinds

+0

對不起,我以前沒有回答,確定你可以做一個頁面(表單)來管理設置,但正如我所說,你需要重新啓動應用程序。我不知道你如何適應上下文重啓,但無論如何,我希望你能解決這個問題;) – Jairo

0

嘗試Liquibase,http://www.liquibase.org/。它不允許用戶設置數據庫連接詳細信息,但它允許您管理數據庫模式(創建和更新模式)和默認數據。

+0

謝謝 - 這是否也適合應用程序database.properties配置文件控制的第一個場景? – rhinds

+0

不,不是真的。我的回答是誤導那部分,我會編輯它。但是一旦你建立了數據庫連接,它就會創建或更新數據庫,添加默認數據等。 –

相關問題