运行 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();
}
}
}
在早期版本中,您可以有一个 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();
}
}
}