Вы должны создать ServletContextListener
реализацию, и зарегистрировать его в web.xml
файле:
ApplicationServletContextListener.java
:
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ApplicationServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("Application started");
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
}
web.xml
:
<web-app>
<listener>
<listener-class>
com.yourapp.ApplicationServletContextListener
</listener-class>
</listener>
</web-app>
При использовании сервлетов 3.0, вы можете также просто аннотируйте класс с аннотацией @WebListener
, а не регистрируйте его в своем web.xml
файл.
Альтернативно, как другой пользователь указывает, Джерси включает ApplicationEventListener
, которые вы можете использовать, чтобы выполнить действие, когда приложение инициализируется:
MyApplicationEventListener.java
:
public class MyApplicationEventListener implements ApplicationEventListener {
private volatile int requestCount = 0;
@Override
public void onEvent(ApplicationEvent event) {
switch (event.getType()) {
case INITIALIZATION_FINISHED:
System.out.println("Application was initialized.");
break;
case DESTROY_FINISHED:
System.out.println("Application was destroyed.");
break;
}
}
@Override
public RequestEventListener onRequest(RequestEvent requestEvent) {
requestCount++;
System.out.println("Request " + requestCount + " started.");
// return the listener instance that will handle this request.
return new MyRequestEventListener(requestCnt);
}
}
Обратите внимание, что это не входит в стандарт JAX-RS, и свяжет ваше приложение с использованием Джерси.
В серверных приложениях загрузка выполнения/класса не такая же, как в консольных/настольных приложениях, в веб-приложениях вы можете использовать ApplicationListener, у которых есть несколько событий, что вам может быть интересно - это создать класс, который реализует 'ServletContextListener' и объявляет это в вашем web.xml – Yazan