我正在开发一个 Web 应用程序,这个 Web 应用程序要卖给很多人。该应用程序正在 Java Spring 中开发。该应用程序有一个数据库,当出售该数据库时,该数据库可能位于不同的位置。
存储此数据库位置以便 Java 代码可以找到数据库的最佳方式在哪里?
我会将它存储在一个 XML 文件中,但它会放在哪里,以便某人可以轻松更改数据库位置。
我不想将它存储在 Spring Beans 中。还有其他方法吗?
我正在开发一个 Web 应用程序,这个 Web 应用程序要卖给很多人。该应用程序正在 Java Spring 中开发。该应用程序有一个数据库,当出售该数据库时,该数据库可能位于不同的位置。
存储此数据库位置以便 Java 代码可以找到数据库的最佳方式在哪里?
我会将它存储在一个 XML 文件中,但它会放在哪里,以便某人可以轻松更改数据库位置。
我不想将它存储在 Spring Beans 中。还有其他方法吗?
问题是它是一个 Web 应用程序,这表明您将给他们一个 WAR 文件。所有 Spring 配置和属性都将被打包;更改某些内容将意味着打开包装,而您不希望他们这样做。
您应该使用 JNDI 名称设置数据库访问权限,这些名称是在包部署到的应用服务器上设置的。提供说明以显示如何为 Tomcat 和其他应用程序服务器设置一个。当您的应用启动时,它将从应用服务器获取数据源名称。
您假设他们足够复杂,能够在他们的应用服务器上创建 JNDI 数据源,或者您的文档足够好。祝你好运。
另一个想法是让您创建一个小型内存数据库,例如 Hypersonic 或 Derby,其中包含应用程序的配置信息。告诉用户将它放在您指定的应用程序之外的位置(例如 c:/yourApp/configuration),提供一个脚本以在应用程序启动时启动它,并让您的应用程序在加载时查询数据库连接信息。
现在,您将指望他们知道如何为您的内存数据库创建 INSERT 或 UPDATE 查询。但是您编写文档来指导如何做的机会更大,因为您不必为 WebLogic、Tomcat、Jetty、JBOSS、WebSphere、Glassfish 和所有其他 Java EE 应用程序服务器弄清楚如何做。