2012-09-15 95 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

您只需配置数据库以限制访问权限,以便只有管理员可以配置数据库。管理员在数据库中配置。等一下。 –