拡張

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 の型パラメーターを具体化 (英語) は JVM ジェネリクス型消去 [Oracle] (英語) の回避策を提供し、Spring Framework はこの機能を利用するためのいくつかの拡張機能を提供します。これにより、より良い Kotlin API RestTemplateSpring 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 の巧妙な型推論により、構文を短くすることができます。