我開始使用Spring Boot 2.0的新Web應用程序。我想用Vaadin 8來提供UI。另外,我想提供一個使用Spring 5提供的WebFlux框架的API接口。在Spring應用程序中使用Vaadin和Spring WebFlux,我如何設置路由?
然而,似乎包括Vaadin在我的build.gradle的行爲導致我WebFlux路線被忽視:
compile('com.vaadin:vaadin-spring-boot-starter')
當我已經配置Vaadin,我看到它可能在啓動配置本身:
2017-09-16 16:04:52.332 INFO 19413 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Registering Vaadin servlet
2017-09-16 16:04:52.333 INFO 19413 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Servlet will be mapped to URLs [/vaadinServlet/*, /VAADIN/*]
2017-09-16 16:04:52.356 INFO 19413 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Setting servlet init parameters
2017-09-16 16:04:52.356 INFO 19413 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [productionMode] = [false]
2017-09-16 16:04:52.357 INFO 19413 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [resourceCacheTime] = [3600]
2017-09-16 16:04:52.357 INFO 19413 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [heartbeatInterval] = [300]
2017-09-16 16:04:52.357 INFO 19413 --- [ost-startStop-1] c.v.s.b.i.VaadinServletConfiguration : Set servlet init parameter [closeIdleSessions] = [false]
2017-09-16 16:04:52.441 INFO 19413 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-09-16 16:04:52.444 INFO 19413 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'springVaadinServlet' to [/vaadinServlet/*, /VAADIN/*]
當我刪除Vaadin,我看到配置我WebFlux路線:
2017-09-16 16:07:51.434 INFO 19441 --- [ restartedMain] o.s.w.r.f.s.s.RouterFunctionMapping : Mapped (Accept: [application/json] && /api) -> /document -> org.springframework.web.reactive.function.server.RouterFunction$$Lambda$203/[email protected]
我沒有看到Vaadin處於活躍狀態。看起來Vaadin Spring Boot入門套件壓倒一切。
我試着將我的@SpringUI組件的路徑改爲不在根目錄下,但是這並沒有改變任何東西。
我也試過這樣:
@WebServlet(value = "/myspringuis/*", asyncSupported = true)
public class MySpringServlet extends SpringVaadinServlet {
}
我不明白SpringVaadinServlet如何融入這個完全是,但懷疑這是有關我的問題。
是否有可能同時使用Vaadin和WebFlux?我想分開路線,顯然,並有WebFlux句柄/ API/*和Vaadin處理其他一切。
AFAIK Spring Boot 2還沒有Vaading啓動器。 Spring Boot 2.0不是最終版本(也不是它使用的任何Spring項目)。 –