2012-09-15 191 views
2

我正在開發一個Web應用程序,這個Web應用程序將被出售給很多人。該應用程序正在Java Spring中開發。該應用程序有一個數據庫,出售時該數據庫可能位於不同的位置。存儲設置信息

存儲此數據庫位置以便Java代碼可以找到數據庫的最佳方法在哪裏?

我會將它存儲在一個XML文件中,但它會去哪裏,以便數據庫的位置可以很容易地被某人改變。

我不想將它存儲在Spring Beans中。有另一種方法嗎?

回答

1

問題是它是一個web應用程序,這表明你會給他們一個WAR文件。所有的Spring配置和屬性都將被打包;改變一些東西意味着打開你不想讓他們做的包。

您應該使用JNDI名稱來設置數據庫訪問權限,JNDI名稱在部署包的應用程序服務器上設置。說明如何爲Tomcat和其他應用程序服務器設置一個。當您的應用程序啓動時,它會從應用程序服務器獲取數據源名稱。

您假設它們足夠複雜以便能夠在其應用程序服務器上創建JNDI數據源,或者您的文檔足夠好。祝你好運。

另一個想法是爲你創建一個像Hypersonic或Derby這樣的小內存數據庫,它爲你的應用程序提供了配置信息。告訴用戶將其放置在您指定的應用程序之外的位置(例如c:/ yourApp/configuration),提供一個腳本以在應用程序啓動時啓動它,並讓應用程序在加載時查詢數據庫連接信息。

現在,您將指望他們知道如何爲您的內存數據庫創建INSERT或UPDATE查詢。但是,編寫文檔以指導如何執行此操作的機會會更好,因爲您無需瞭解如何爲WebLogic,Tomcat,Jetty,JBOSS,WebSphere,Glassfish和所有其他Java EE應用程序服務器執行此操作。

+1

嗯,網絡應用程序本身可以通過管理界面暴露內部配置數據庫。 –

+0

確實如此,但我想限制只有管理員才能訪問該網址。不要讓用戶擁有它。但確實是一個非常好的想法。 – duffymo

+0

您只需配置數據庫以限制訪問權限,以便只有管理員可以配置數據庫。管理員在數據庫中配置。等一下。 –