Как выполнить действия до того, как приложение gwt перезапустится / закроется?

Я создаю стандартное веб-приложение GWT и использую базу данных MySql. Каждый раз, когда я перекомпилирую свое приложение, моя база данных сбрасывается и начинается заново. Я знаю, что могу помешать сбросу таблицы, но я также хочу сохранить свою базу данных, прежде чем каждый раз перекомпилировать ее. Мои вопросы: 1. где я могу поместить этот метод и как мне его использовать? 2. Какой, по вашему мнению, лучший вариант для сохранения этой базы данных?

Спасибо за помощь

2 ответа

Если вы хотите выполнить какое-либо действие до закрытия приложения, просто добавьте обработчик событий, подобный этому

Window.addWindowClosingHandler(new Window.ClosingHandler(){
                    @Override
                    public void onWindowClosing(Window.ClosingEvent event) {    
                        /*do some actions before app closes*/
                    }
                });

Вы можете использовать ServletContextListener. Тогда вы можете слушать contextInitialized а также contextDestroyed события, которые (короче) web-app-start и web-app-stop:

public class MyContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        // app has started
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // app has stopped
    }
}

Вы также должны поместить это в свой web.xml (замените реальным именем пакета, которое должно быть на стороне сервера):

<listener>
    <listener-class>com.adam.test.server.MyContextListener</listener-class>
</listener>
Другие вопросы по тегам