3

我有一个非常基本的 vaadin 应用程序正在运行。该应用程序支持spring-boot,我定义了一些rest API。

我使用 org.springdoc:springdoc-openapi-ui:1.4.4 添加了 OpenAPI 文档,在添加 vaadin 之前它运行良好。

如 vaadin spring-boot 教程中所示添加 vaadin 依赖项并创建视图(有效)后,swagger UI 不再可访问。

在我看来,vaadin 完全接管了所有网络请求。深入挖掘,我发现 vaadin 注册了一个新的 servlet 并捕获了所有请求。

我没有找到任何关于如何配置它的文档——我希望人们可以配置 vaadin,以便它从不同的路径(比如/ui或类似路径)提供 UI。

我试过设置

vaadin:
   url-mapping: "/ui/*"

在我的application.yaml- 但这会导致我的 vaadin 视图出现空白页(没有错误),并且 vaadin servlet 仍然会接管/.

我使用 spring.boot 2.3.2.RELEASE, vaadin 14.3.1

4

1 回答 1

3

要覆盖的值是(注意 camelCase 而不是 kebab-case):

vaadin:
  urlMapping: /ui/*

使用 kebab-case 确实(不)起作用。正如预期的那样,这是一个错误。见https://github.com/vaadin/spring/issues/637

从当时的文档:

您可以在application.properties文件中设置 Spring Boot 的属性。

示例:在application.properties.

vaadin.urlMapping=/my_mapping/*

默认情况下,URL 映射是/*.

需要一个额外的 servlet,例如/my_mapping/*来处理非根 servlet 的前端资源。servlet 可以在您的应用程序类中定义。有关示例,请参见此Application 类


来源:https ://vaadin.com/docs/v14/flow/spring/tutorial-spring-configuration.html#using-spring-boot-properties

于 2020-08-13T17:27:42.797 回答