【问题标题】:How can I execute Database operation at a time of WAR Deployment?如何在 WAR 部署时执行数据库操作?
【发布时间】:2015-06-05 12:00:52
【问题描述】:

我想在应用程序部署时执行一些数据库操作。

前端我使用JSP,后端Spring-mvc和数据库操作Hibernate

我怎样才能做到这一点?

【问题讨论】:

  • 你的应用程序使用 maven 吗?
  • 是的,我使用的是 maven
  • 应用部署是指将应用构建到可分发包中还是在可分发包开始被服务器部署之后?
  • 什么样的操作?如果您需要的操作与表的创建或更新有关,您可以让 hibernate 为您完成这些操作。检查this question,看看这是否适用于您的情况。
  • 我想调用一些程序......

标签: java spring hibernate spring-mvc


【解决方案1】:

您需要在 web.xml 中添加 servlet 条目,其中 load-on-startup 为 1 ,这将在部署期间加载,以便您可以执行数据库操作.. 示例

<servlet>
    <display-name>MyClass</display-name>
    <servlet-name>MyClass</servlet-name>
    <servlet-class>com.controller.MyClass</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>MyClass</servlet-name>
    <url-pattern>/MyClass</url-pattern>
</servlet-mapping>

享受吧兄弟:)

【讨论】:

    【解决方案2】:

    您需要创建一个将实现 ServletContextListener 的类。请参考thisthis 链接。希望它会有所帮助。 :)

    【讨论】:

      【解决方案3】:

      创建一个类,编写您想要在应用程序部署时执行的代码并将其注册到 Spring。

      Spring 将在应用程序部署时执行它,因为所有 bean 都是 Singleton(default) 并且在创建应用程序上下文时被扫描。此外,如果你想在执行 bean 代码之前完成一些先决条件,你也可以实现InitializingBean

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多