java web-application初始化和关闭

问题描述 投票:12回答:3

我正在尝试实现webapp的初始化和关闭。这包括初始化和关闭:

  • Hibernate(af.y);
  • C3P0(v0.9.1.2);
  • EHCache(v2.3.0);
  • 石英(1.8.4);
  • 我的webapp特有的其他任务;

使用Tomcat 5.5.30和Java 6.我的想法是避免资源泄漏,主要是因为在开发环境中重新部署了webapp。

我该如何实现呢?

java web-applications initialization shutdown
3个回答
20
投票

通常对于Web初始化和关闭,您将编写一个ServletContextListener

执行此操作的步骤是:

  1. 写一个实现javax.Servlet.ServletContextListener的类
  2. 将标记添加到web.xml部署描述符以注册您刚刚创建的类
  3. 部署您的应用程序

部署应用程序时,将调用contextInitialized方法。您可以在此处放置所需的所有初始化。在应用程序关闭时,将调用contextDestroyed方法。


1
投票

它也可以使用HTTP Servlet,但是监听器是更好的选择。

您必须使用HttpServlet扩展一个类并将以下内容设置到您的web.xml:

<servlet>
    <servlet-name>StartupServlet</servlet-name>
    <servlet-class>your.package.servlets.StartupServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

该类可以覆盖init和destroy方法。


0
投票

但是,如果应用程序崩溃并且未调用正常关闭例程,您仍然希望以这样的方式管理资源:

© www.soinside.com 2019 - 2024. All rights reserved.