扩展名
Kotlin的扩展功能允许通过添加额外的功能来扩展现有的类。Spring框架的Kotlin API利用这些扩展功能,为现有的Spring API带来了新的、特定于Kotlin的便捷性。
Spring Framework KDoc API 列出了所有可用的 Kotlin 扩展和 DSL,并对其进行了说明。
备注
请记住,要使用Kotlin扩展,需要先导入它们。例如,只有导入org.springframework.context.support.registerBean后,GenericApplicationContext.registerBean这个Kotlin扩展才能被使用。不过,与静态导入类似,在大多数情况下,IDE应该会自动提示导入。
例如,Kotlin的具化类型参数为JVM的泛型擦除提供了一种解决方案,而Spring框架也提供了一些扩展来利用这一特性。这使得Kotlin的RestTemplate API、Spring WebFlux中的新WebClient以及各种其他API能够得到更好的实现。
备注
其他库,如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智能的类型推断功能允许使用更简洁的语法。