2017-09-16 45 views
2

我开始使用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处理其他一切。

+0

AFAIK Spring Boot 2还没有Vaading启动器。 Spring Boot 2.0不是最终版本(也不是它使用的任何Spring项目)。 –

回答

1

vaadin-spring-boot-starter最有可能带来spring-boot-starter-web(它带来了一个Servlet容器和配置Spring MVC)。

您不能同时在同一个应用程序中配置Spring MVC和Spring WebFlux。

相关问题