0

我可以使用新的 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)
    }
}

使用非反应性 Web 部件?从某种意义上说,底层数据库将是 Postgres 和基于非 Reactive servlet 的应用程序服务器,因此我不想/不需要使用 Flux 或 Mono 作为返回类型barHandler或存储库函数。但我确实喜欢与 Kotlin 一起使用的新路由器 DSL,它比基于注释的功能更强大,@RequestMapping并且更容易掌握所有应用程序路由。

4

1 回答 1

3

您示例中的 DSL 是Spring WebFlux的一部分,这是您所说的“反应式”事物。在这篇官方博客文章中,该功能被介绍为“Spring WebFlux功能DSL ”。

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

不过,您可以在传统 Web MVC 中使用什么:用于以如下方式定义应用程序 bean的功能 bean 声明 DSL :

beans {
    bean<Foo>()
    bean { Bar(ref()) }
}
于 2017-10-23T12:52:13.803 回答