我認爲Vaadin對你來說是一個很好的選擇。我已經用這個框架開發了一些應用程序,用於在SmartTV的Web瀏覽器上顯示一些實時圖表。
由於不活動,您的會話很有可能會超時。這在Vaadin中默認實現,但在這些類型的應用程序中可能很煩人。
與下面的代碼段(應該躺在你的UI)當會話過期的web應用程序會自動重新加載:
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet implements Serializable {
@Override
protected void servletInitialized() throws ServletException {
super.servletInitialized();
getService().setSystemMessagesProvider((systemMessagesInfo) -> {
CustomizedSystemMessages messages
= new CustomizedSystemMessages();
messages.setSessionExpiredNotificationEnabled(false);
return messages;
});
}
}
另外,請參考這個問題: Setting Vaadin session-timeout parameter
我會建議您使用Spring集成,這將允許您輕鬆連接所有依賴項,使用Spring Data以簡單的方式訪問數據庫,並使用@Scheduled註釋來運行一些後臺任務和處理。
這取決於。如果您的GUI應用程序設計有圖層,分隔(等),轉換是可能的。但是,當這是針對GUI事件的'spagetti代碼'時,並非如此簡單 –
它還取決於您對應用程序體系結構的原始想法,以及「控制應用程序」和「連續運行,收集數據,處理」的含義。此外,您應該在這裏區分兩個概念:Web應用程序(aka UI),它會爲每個訪問它的用戶_instance_和應用程序的收集器端(您可能希望成爲_singleton_)服務的集合或任何可以被任何用戶重新配置但不會影響網絡應用程序的任何可以停止,啓動和重新配置的服務。 – Morfic