инициализация и завершение работы Java-приложения - PullRequest
12 голосов
/ 06 декабря 2010

Я пытаюсь реализовать инициализацию и завершение работы веб-приложения.Это включает в себя инициализацию и завершение работы:

  • Hibernate (v3.6);
  • C3P0 (v0.9.1.2);
  • EHCache (v2.3.0);
  • Кварц (1.8.4);
  • Другие задачи, характерные для моего веб-приложения;

Использование Tomcat 5.5.30 и Java 6. Моя идея - избегатьутечка ресурсов, в основном из-за повторного развертывания веб-приложения в среде разработки.

Как мне реализовать это?

Ответы [ 3 ]

20 голосов
/ 06 декабря 2010

Обычно для инициализации и завершения работы через Интернет вы пишете ServletContextListener .

Шаги для этого:

  1. Напишите класс, который реализует javax.Servlet.ServletContextListener
  2. Добавьте тег в web.xml дескриптор развертывания, чтобы зарегистрировать класс, который вы только что создали
  3. Разверните ваше приложение

При развертывании приложения будет вызван метод contextInitialized. Вы можете разместить всю необходимую инициализацию здесь. При завершении работы приложения будет вызываться метод contextDestroyed.

1 голос
/ 03 января 2018

Также возможно использовать вместо этого сервлет HTTP, но лучше использовать прослушиватель.

Вы должны расширить класс с помощью 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 голосов
/ 06 декабря 2010

Но все же вы хотите управлять своими ресурсами таким образом, чтобы они не просачивались, если приложение аварийно завершает работу и обычные процедуры завершения работы не вызываются.

...