运行 Vaadin 8 应用程序中的代码独立于 UI

Run code in Vaadin 8 application idependent of UI

在早期版本中,您可以有一个 class 实现 ServletContextListener 并将您的代码放在 contextInitialized 方法中,以便它在服务器启动时运行。这对于将数据库加载到内存中很有用。如何在 Vaadin 8 项目中实现这一目标?

以完全相同的方式:通过注册 ServletContextListener。您可以为此使用 @WebListener 注释。例如:

public class WebConfig {

    @WebServlet("/*")
    @VaadinServletConfiguration(ui = VaadinUI.class, productionMode = false)
    public static class JdbcExampleVaadinServlet extends VaadinServlet {
    }

    @WebListener
    public static class JdbcExampleContextListener implements ServletContextListener {

        @Override
        public void contextInitialized(ServletContextEvent sce) {
            try {
                DatabaseService.init();

            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            DatabaseService.shutdown();
        }
    }

}