带kotlin功能路由器的非反应性Spring Web

我可以使用新的Kotlin DSL来设置路由,例如:

router { ("/blog" and accept(TEXT_HTML)).nest { GET("/", fooHandler::findAllView) GET("/{slug}", fooHandler::findOneView) } ("/api/blog" and accept(APPLICATION_JSON)).nest { GET("/", barHandler::findAll) GET("/{id}", barHandler::findOne) } } 

与无反应的网页部分? 基础数据库将是Postgres和非Reactive基于servlet的应用程序服务器,因此我不希望/不需要使用Flux或Mono作为barHandler或存储库函数的返回类型。 但是我喜欢新的路由器DSL和Kotlin一起使用,它比基于@RequestMapping注解更强大,并且更容易掌握所有的应用路由。

在你的例子中的DSL是Spring WebFlux的一部分,这是你所说的“被动”的东西。 在这篇官方博客文章中 ,功能被引入为“Spring WebFlux功能DSL ”。

DSL入口点router在包org.springframework.web.reactive.function.server定义,这也验证了我之前所说的内容。 你可以在GitHub上看看它。

但是,您可以使用传统的Web MVC:用于以如下方式定义应用程序bean的Functional bean声明DSL

 beans { bean<Foo>() bean { Bar(ref()) } }