简体   繁体   中英

java web-application initialization and shutdown

I'm trying to implements initialization and shutdown of a webapp. That includes initialization and shutdown of:

  • Hibernate (v3.6);
  • C3P0 (v0.9.1.2);
  • EHCache (v2.3.0);
  • Quartz (1.8.4);
  • Other tasks specific to my webapp;

Using Tomcat 5.5.30 and Java 6. My idea is to avoid resource leaking, mostly because of the redeploy of the webapp in the development environment.

How should I implement this?

Usually for Web initialization and shutdown, you will write a ServletContextListener .

The steps to do this are:

  1. Write a class that implements javax.Servlet.ServletContextListener
  2. Add a tag to web.xml deployment descriptor to register the class you've just created
  3. Deploy your application

When you deploy your application, contextInitialized method will be called. You can place all initialization you want here. On application shutdown contextDestroyed method will be called.

Its also possible to use the HTTP Servlet instead but the listener is a better option.

You have to extend a class with HttpServlet and setting the following stuff to your web.xml:

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

The class can overwrite the init and the destroy method.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM