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

Eig*_*ice 1 vaadin vaadin8

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

Ale*_*rte 5

以完全相同的方式:通过注册一个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();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)