【问题标题】:Spring MVC Web App with Default user具有默认用户的 Spring MVC Web App
【发布时间】:2011-07-30 21:04:25
【问题描述】:

我正在使用 Spring MVC 和 Hibernate 开发一个 Web 应用程序,我希望将其打包为 WAR 文件并分发给用户,以便在需要的地方进行部署。

该应用程序在部署之前将需要数据库连接详细信息,任何人都可以就如何执行此操作的最佳实践提出建议吗?目前我的 database.properties 文件被打包为 WAR 文件的一部分,有没有比要求用户在 WAR 文件或源代码中手动编辑此文件然后期望他们自己构建 war 文件更简单的方法?

我还希望用户有一种简单的方法可以在首次部署时轻松创建单个管理员用户 - 最好只提供一个 sql 脚本来创建它,还是有办法在 Web 应用程序中包含该功能等等首先部署它创建用户?

谢谢

【问题讨论】:

    标签: java database configuration spring-mvc


    【解决方案1】:

    由于 Web 应用程序不专注于“大规模生产”,我不知道这样的事情是否可行。

    您可以创建一个 SQL 脚本,其中包含受“IF NOT EXISTS”限制的所有 CREATE 语句,以避免删除现有数据。 Hibernate 可以在创建 SessionFactory 的那一刻执行一个 sql 脚本,如果 Hibernate 在类路径根目录中找到一个名为“import.sql”的文件,Hibernate 将执行它。此外,您始终可以编辑已部署的应用程序的 database.properties,而无需重新打包 WAR。

    【讨论】:

    • 谢谢 - 是否可以从已部署的正在运行的应用程序中编辑 database.properties 文件?我在想它可以默认为内存数据库设置,允许用户部署和登录,然后他们可以编辑数据库属性以通过一些 Web UI 管理面板指向正确的数据库?
    • 对不起,我之前无法回答,请确保您可以创建一个页面(表单)来管理设置,但正如我所说,您需要重新启动应用程序。我不确定你如何才能完成上下文重启,但无论如何我希望你能解决这个问题;)
    【解决方案2】:

    试试 Liquibase,http://www.liquibase.org/。它不允许您的用户设置数据库连接详细信息,但它允许您管理数据库架构(创建和更新架构)和默认数据。

    【讨论】:

    • 谢谢 - 这是否也适用于有关控制应用程序 database.properties 配置文件的第一个场景?
    • 不,不是。我的回答对该部分具有误导性,我将对其进行编辑。但是一旦你设置了数据库连接,它就会创建或更新数据库,添加默认数据等。
    猜你喜欢
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2015-04-01
    • 1970-01-01
    相关资源
    最近更新 更多