扩展

Kotlin 扩展 提供了用附加功能扩展现有类的能力。Spring 框架 Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定便利功能。

Spring 框架 KDoc API 列出并记录了所有可用的 Kotlin 扩展和 DSL。

请记住,Kotlin 扩展需要导入才能使用。这意味着,例如,GenericApplicationContext.registerBean Kotlin 扩展只有在导入 org.springframework.context.support.registerBean 时才可用。也就是说,类似于静态导入,IDE 在大多数情况下应该会自动建议导入。

例如,Kotlin 具化类型参数 为 JVM 泛型类型擦除 提供了解决方案,Spring 框架提供了一些扩展来利用此功能。这允许为新的 WebClient(来自 Spring WebFlux)以及其他各种 API 提供更好的 Kotlin API RestTemplate

其他库,例如 Reactor 和 Spring Data,也为其 API 提供了 Kotlin 扩展,从而总体上提供了更好的 Kotlin 开发体验。

要检索 Java 中的 User 对象列表,您通常会编写以下代码

Flux<User> users  = client.get().retrieve().bodyToFlux(User.class)

使用 Kotlin 和 Spring 框架扩展,您可以改为编写以下代码

val users = client.get().retrieve().bodyToFlux<User>()
// or (both are equivalent)
val users : Flux<User> = client.get().retrieve().bodyToFlux()

与 Java 一样,Kotlin 中的 users 是强类型的,但 Kotlin 的智能类型推断允许使用更短的语法。