~/talk

Why Spring Loves Kotlin

Talkat KotlinConf 2017 · 2017-11-02..11-03· [kotlin, spring]
slides:none on file

Stepwise migration from Spring Boot 1 Java + JavaScript to Spring Boot 2 pure Kotlin shows concrete wins: Kotlin-specific bytecode plugin compiler plugin auto-opens Spring-annotated classes, new top-level runApplication replaces boilerplate, Spring adds Kotlin extensions for generics and null-safety integrated with Reactor Mono/Flux, reactive Spring Data repositories are usable, coroutines support is experimental, config properties remain a pain, and Kotlin/JS plus dead-code elimination shrinks front-end output to 10 KB gzipped, a production-feasible result.

AI-written summary · about

  1. 0:00Intro
  2. 0:30Today most popular way to build web applications
  3. 1:23Step 1
  4. 3:14kotlin-spring compiler plugin
  5. 4:07Domain model
  6. 5:03Spring MVC controller written in Java
  7. 5:20Spring MVC controller written in Kotlin
  8. 6:02Inferred type hints in IDEA
  9. 6:37Expressive test names with backticks
  10. 8:03Kotlin bytecode builtin in Spring JARS
  11. 8:40Kotlin support reference documentation
  12. 9:14Kotlin API documentation
  13. 9:40Run Spring Application with Boot 1
  14. 10:20Declaring additional beans
  15. 10:32Customizing Spring Application
  16. 10:49Array-like Kotlin extension for Model
  17. 11:48Reified type parameters Kotlin extension
  18. 13:23Leveraging Kotlin nullable information
  19. 14:54Null safety of Spring APIs
  20. 17:50Configuration Properties
  21. 20:03JUnit 5 supports non-static
  22. 21:14Specification like tests with Kotlin and JUnit 5
  23. 22:03Kotlin type-safe templates
  24. 24:51Reactive Streams
  25. 26:33WebFlux supports various async and Reactive API
  26. 27:15Reactor Flux is a Publisher for 0...n elements
  27. 27:42Reactor Mono is a Publisher for 0..1 element
  28. 28:19Reactive APIs are functional
  29. 28:45Reactor Kotlin extensions
  30. 29:51Spring WebFlux with annotations
  31. 30:24Spring & Kotlin Coroutines
  32. 32:42Spring WebFlux with Coroutines
  33. 34:11WebFlux functional API with Kotlin DSL
  34. 35:10Splitting router/handlers in integration in Boot
  35. 35:42Functional handlers
  36. 36:43Functional bean definition DSL
  37. 38:44Using bean DSL with Spring Boot
  38. 39:50Original JavaScript code
  39. 40:47Kotlin to Javascript
  40. 43:08Compiling Kotlin to WebAssembly instead of JavaScript
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.