扩展

Kotlin 扩展 提供了扩展现有类的功能的能力。Spring Framework Kotlin API 使用这些扩展来为现有的Spring API添加新的针对Kotlin的便利功能。

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

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

例如,Kotlin具体化类型参数提供了对JVM 泛型类型擦除的解决方法,Spring Framework提供了一些扩展来利用这一特性。这允许更好地使用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>()
// 或(两者等效)
val users : Flux<User> = client.get().retrieve().bodyToFlux()

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