擴充套件

Kotlin 擴充套件提供了為現有類增加附加功能的能力。Spring Framework Kotlin API 利用這些擴充套件為現有 Spring API 新增新的 Kotlin 特定便利功能。

Spring Framework KDoc API 列出並記錄了所有可用的 Kotlin 擴充套件和 DSL。

請注意,使用 Kotlin 擴充套件需要匯入。這意味著,例如,GenericApplicationContext.registerBean Kotlin 擴充套件只有在匯入 org.springframework.context.support.registerBean 時才可用。儘管如此,與靜態匯入類似,大多數情況下 IDE 會自動建議匯入。

例如,Kotlin 的reified 型別引數為 JVM 泛型型別擦除提供瞭解決方案,Spring Framework 提供了一些擴充套件來利用此特性。這使得 Spring WebFlux 的新 WebClient 以及各種其他 API 擁有更好的 Kotlin API RestTemplate

其他庫,如 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 巧妙的型別推斷允許使用更簡潔的語法。