|
对于最新稳定版本,请使用 Spring Framework 7.0.6! |
扩展
Kotlin 扩展 提供了为现有类添加额外功能的能力。Spring Framework 的 Kotlin API 利用这些扩展,为现有的 Spring API 增加了 Kotlin 特有的便捷功能。
Spring Framework KDoc API 列出了 并记录了所有可用的 Kotlin 扩展和 DSL。
请记住,Kotlin 扩展必须被导入后才能使用。这意味着,例如,只有在导入了 GenericApplicationContext.registerBean 之后,org.springframework.context.support.registerBean 这个 Kotlin 扩展才可用。
话虽如此,与静态导入类似,在大多数情况下 IDE 应该会自动提示导入。 |
例如,Kotlin 的具体化类型参数为 JVM 的泛型类型擦除问题提供了一种变通方案,
而 Spring 框架也提供了一些扩展来充分利用这一特性。
这使得 Kotlin API(如 RestTemplate、Spring WebFlux 中全新的 WebClient 以及其他多种 API)
能够获得更好的使用体验。
| 其他库,例如 Reactor 和 Spring Data,也为其 API 提供了 Kotlin 扩展,从而整体上带来更佳的 Kotlin 开发体验。 |
要在 Java 中检索一个 User 对象列表,你通常会编写如下代码:
Flux<User> users = client.get().retrieve().bodyToFlux(User.class)
借助 Kotlin 和 Spring Framework 扩展,你可以改为编写如下代码:
val users = client.get().retrieve().bodyToFlux<User>()
// or (both are equivalent)
val users : Flux<User> = client.get().retrieve().bodyToFlux()
与 Java 中一样,Kotlin 中的 users 是强类型的,但 Kotlin 的智能类型推断允许使用更简洁的语法。