Kotlin 是一种来自JetBrains 的面向对象的语言,它支持函数式编程。它的主要优势之一是与Java 有非常高的互操作性。通过引入对Kotlin 的专门支持,Spring 在V5 中全面吸纳了这一优势。它的函数式编程风格与Spring WebFlux 模块完美匹配,它的新路由DSL 利用了函数式Web 框架以及干净且符合语言习惯的代码。可以像下面代码中这样简单地表达端点路由:
Kotlin 的用于定义端点的路由DSL
@Bean
fun apiRouter() = router {
(accept(APPLICATION_JSON) and "/api").nest {
"/book".nest {
GET("/", bookHandler::findAll)
GET("/{id}", bookHandler::findOne)
}
"/video".nest {
GET("/", videoHandler::findAll)
GET("/{genre}", videoHandler::findByGenre)
}
}
}
使用Kotlin 1.1.4+ 时,还添加了对Kotlin 的不可变类的支持(通过带默认值的可选参数),以及对完全支持null 的API 的支持。