Java Web 应用程序初始化和关闭

我正在尝试实现Web应用程序的初始化和关闭。这包括初始化和关闭:

  • 休眠 (v3.6);
  • C3P0 (v0.9.1.2);
  • EHCache (v2.3.0);
  • 石英 (1.8.4);
  • 特定于我的Web应用程序的其他任务;

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

我应该如何实现这一点?


答案 1

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

执行此操作的步骤如下:

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

部署应用程序时,将调用上下文初始化方法。您可以将所需的所有初始化都放在这里。在应用程序关闭上下文中,将调用已销毁的方法。


答案 2

也可以使用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 和销毁方法。