跳到主要内容
版本:7.0.3

网络

Hunyuan 7b 中英对照 Web

路由器DSL

Spring Framework 提供了 Kotlin 路由器 DSL(Domain-Specific Language),共有 3 种版本可供选择:

这些DSL允许你编写简洁且符合Kotlin规范的代码来构建RouterFunction实例,如下例所示:

@Configuration
class RouterRouterConfiguration {

@Bean
fun mainRouter(userHandler: UserHandler) = router {
accept(TEXT_HTML).nest {
GET("/") { ok().render("index") }
GET("/sse") { ok().render("sse") }
GET("/users", userHandler::findAllView)
}
"/api".nest {
accept(APPLICATION_JSON).nest {
GET("/users", userHandler::findAll)
}
accept(TEXT_EVENT_STREAM).nest {
GET("/users", userHandler::stream)
}
}
resources("/**", ClassPathResource("static/"))
}
}
备注

这种DSL是编程式的,意味着它允许通过if表达式、for循环或Kotlin的任何其他结构来定制bean的注册逻辑。当您需要根据动态数据(例如来自数据库的数据)来注册路由时,这会非常有用。

有关具体示例,请参见 MiXiT 项目

MockMvc DSL

通过MockMvc的Kotlin扩展提供了Kotlin DSL,以便提供更符合Kotlin语言习惯的API,并提高代码的可发现性(无需使用静态方法)。

val mockMvc: MockMvc = ...
mockMvc.get("/person/{name}", "Lee") {
secure = true
accept = APPLICATION_JSON
headers {
contentLanguage = Locale.FRANCE
}
principal = Principal { "foo" }
}.andExpect {
status { isOk }
content { contentType(APPLICATION_JSON) }
jsonPath("$.name") { value("Lee") }
content { json("""{"someBoolean": false}""", false) }
}.andDo {
print()
}

Kotlin多平台序列化

Kotlin多平台序列化在Spring MVC、Spring WebFlux和Spring Messaging(RSocket)中得到支持。目前内置的序列化支持CBOR、JSON和ProtoBuf格式。

要启用它,请按照这些说明添加相关的依赖和插件。在使用Spring MVC和WebFlux时,如果Kotlin序列化库在类路径中,那么它会被默认配置;而像Jackson这样的其他序列化库则不会被自动配置。如果有需要,可以手动配置转换器(converters)或编解码器(codecs)。