2011-07-30 47 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

不,不是真的。我的回答是误导那部分,我会编辑它。但是一旦你建立了数据库连接,它就会创建或更新数据库,添加默认数据等。 –

相关问题