如何将 ServletForwardingController 添加到 Grails 3 中的 GrailsDispatcherServlet?

How to add ServletForwardingController to GrailsDispatcherServlet in Grails 3?

我正在尝试配置 Grails 3.2 应用程序以将 Vaadin 8 与调度程序 servlet 一起使用。我添加了对 "com.vaadin:vaadin-spring-boot-starter:2.0.0.beta1" 的编译依赖,它拉取了必要的 spring 机制(例如 SpringVaadinServlet 等)和 Vaadin 依赖。 Spring Vaadin 附加组件依赖于配置为将所有 Vaadin 请求从 DispatcherServlet 转发到 Spring Vaadin servlet 的 ServletForwardingController。我应该如何为 GrailsDispatcherServlet 配置它?充其量,这将是可以放入插件中以供重用的东西。

显然,如果使用 Vaadin Spring Boot Starter(在我的情况下),Spring 启动自动配置会启动并配置两个 servlet(GrailsDispatcherServlet 和 SpringVaadinServlet)和整个 Vaadin 机器没有任何问题。真正的问题是,即使我的 UI class 用 @SpringUI 注释,它也没有被 auto-scanning 拾取并且实际上它不是由 bean 容器管理的。使其工作的最简单方法是将 @ComponentScan 注释添加到 Grails Application class。另一种选择是在 application.yml:

中添加适当的条目
grails:
profile: web
codegen:
    defaultPackage: example
spring:
    bean:
        packages:
            - example