【问题标题】:Wait for Vaadin server startup等待 Vaadin 服务器启动
【发布时间】:2021-04-21 12:30:06
【问题描述】:

我有一个 Vaadin 14 应用程序(带有 Spring Boot),并希望在服务器完全启动并且前端已编译、启动并运行时执行一些代码。

将代码放入方法afterPropertiesSet() 中的@Component 不起作用,因为这是在Vaadins 前端编译之前执行的。

拉取登录视图(= http://localhost:8080/login 返回等于 200=OK 的 HTTP 状态)可行,但这似乎不是一种优雅的方式。

问题:等待 Vaadin 启动的优雅方式是什么?

【问题讨论】:

  • 有趣的问题。但是为什么服务端服务需要等待前端准备好呢?
  • 好问题。再次考虑之后,似乎我的问题是错误的。重述的问题和您在stackoverflow.com/questions/65753686/… 找到的答案

标签: vaadin vaadin-flow vaadin10


【解决方案1】:

我想了解这个用例。

因为这是在 Vaadins 前端编译之前执行的

前端编译在运行时在开发模式下完成,您不应该在生产环境中使用。 开发模式旨在用于加速开发,它最初并不是优雅的做事方式(例如仅需要一次启动的额外过程)。 如果您在生产中使用 Vaadin 应用程序,则应使用 maven 插件预编译所有前端资源。 在后一种情况下,Vaadin 应用程序作为任何其他 Web 应用程序启动。 那么在dev模式下等待前端编译真的有必要吗?

【讨论】:

  • 有两个用例:(a) 启动 Selenium 测试用例(系统以 @SpringBootTest 启动并拉取 localhost:8080/login)和 (b) 向产品中的用户/管理员发送电子邮件系统通知他们(完全)重启(例如在维护暂停后)。你是对的:在生产案例 (b) 中没有前端编译 - 我在这里与 (a) 混淆了 - 等待时间必须是别的东西。所以我的问题应该是“当我的应用程序准备好服务时如何执行代码?”答案是这个:stackoverflow.com/a/38668148/14972917 谢谢!
  • 对于 Vaadin 特定的东西,您可以使用 VaadinServiceInitListener :在初始化 VaadinService 时调用它(比 Web 应用程序就绪更具体)
  • @Component public class MyUIServiceInitListener implements VaadinServiceInitListener {@Override public void serviceInit(ServiceInitEvent event) {/*doing my stuff here*/}} 对我的生产用例来说就像一个魅力。伟大的。谢谢! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
相关资源
最近更新 更多