際際滷

際際滷Share a Scribd company logo
Spring 5 + Kotlin
BKUG #3
弌亠亞亠亶 ミ歳笑
Spring 5 + Kotlin (Rus)
 仄 仗仂亞仂于仂亳仄
仍舒亞亳仆 kotlin-spring
Kotlin extensions 亟仍 GenericApplicationContext
Kotlin extensions 亟仍 RestTemplate
舒亳于仆舒 仗仂亟亟亠亢从舒 nullable-亳仗仂于
Kotlin Script 舒弍仍仂仆
Spring 5 WebFlux 101
Kotlin extensions 亟仍 Reactor
Kotlin DSL 亟仍 WebFlux functional API
kotlin-spring
Kotlin extensions 亟仍 GenericApplicationContext
AKA functional bean registration
Kotlin extensions 亟仍 RestTemplate
舒亳于仆舒 仗仂亟亟亠亢从舒 nullable-亳仗仂于
Kotlin Script 舒弍仍仂仆
Spring 5 WebFlux 101
Reactive Streams JVM
Publisher
Subscriber
Subscription
Processor
Reactor Core
Mono<T> : Publisher<T>
Flux<T> : Publisher<T>
Kotlin extensions 亟仍 Reactor
WebFlux styles
舒 舒仆仆仂舒亳 (@Controller), 从舒从 于 Spring MVC
个仆从亳仂仆舒仍仆亶 亳仍 仆舒 仍礆弍亟舒
Kotlin DSL 亟仍 WebFlux functional API
QA
弌仍从亳
仂于仂 仂 仗仂亟亟亠亢从亠 Kotlin 于 Spring 5
弌舒亶 从仂仆亠亠仆亳亳 MiXiT
丐亳仗仂弍亠亰仂仗舒仆亠 舒弍仍仂仆 仆舒 Spring Boot + Kotlin
仂亟 亳亰 仂亶 仗亠亰亠仆舒亳亳
弌仗舒亳弍仂 亰舒 于仆亳仄舒仆亳亠!

More Related Content

Spring 5 + Kotlin (Rus)

Editor's Notes

  1. 亳于亠! 亠仆 亰仂于 弌亠亞亠亶. 亊 于 舒亶仆亠 仍ミ頴姿 Kotlin, 仆仂 从仂仍仍亠亞亳 亳 亟亠于从舒 仆亠 亰仆舒ム 仂弍 仂仄. Spring 仄仆亠 仂亢亠 仆舒于亳, 舒 于 仗仂亶 于亠亳亳 仂仆 舒仆亠 亠 仍亠. 仂 亳 亠亳仍, 仗仂亠仄 弍 仆亠 舒从舒亰舒 于舒仄 仂 仂仄, 从舒从 于亠亳 亳 于仄亠亠, 亠仄 弍仂仍亠亠, 仂 亠弍舒 亳亰 Pivotal 亟仂弍舒于仍ム 仗仂亟亟亠亢从 Kotlin 仗礆仂 于仂 亠亶仄于仂从.
  2. 仆仂亞仂亠 亳亰 仂亞仂, 仂 仄 弍亟亠仄 亞仂于仂亳 亟舒仍亠亠 仄仂亢亠 亳亰仄亠仆亳 从 亳仆舒仍仆仂仄 亠仍亳亰. 亳仄亠 从仂亟舒 仂弍舒仆 仆舒 SNAPSHOT-于亠亳 Spring 5 M4 亳 仄仂亞 仗仂仍仂仄舒 亢亠 亰舒于舒. 仂亟 仗亳仍仂亢亠仆亳 仆舒仗亳舒仆 仆舒 Kotlin 亳亰仆舒舒仍仆仂, 亠仍亳 弍亟 从舒从亳亠-仂 于仂仗仂 (仄仂亢亠 亟仍 从仂亞仂-仂 仂 仗亠于仂亠 亰仆舒从仂仄于仂 亳仄 仗亠从舒仆仄 磶从仂仄) - 仗亠亠弍亳于舒亶亠, 亰舒亟舒于舒亶亠 于仂仗仂. UPD: API 亟亠亶于亳亠仍仆仂 仗仂仄亠仆磿仂 仗礆仂 仄亠亢亟 亳于亠仆舒仄亳 :)
  3. 仂亟仆亳仄亳亠, 仗仂亢舒仍亶舒, 从亳, 从仂 仗仂弍仂于舒仍 仗亳舒 仗亳仍仂亢亠仆亳 仆舒 Kotlin 亳 Spring [Boot]? 仂弍亠仄, 亠仍亳 从仂仄亳 @Configuration 从仍舒, 仆舒仗亳舒仆仆亠 仆舒 Kotlin Spring, 仂仆 弍亟亠 亞舒 仆舒 仂, 仂 仂仆亳 final. 舒, 于 Kotlin 于亠 从仍舒 final by default. 仂亟仆舒 仗仂弍仍亠仄舒, 仂 仆亠亶 仍亳 于从舒亠, 于仂亰仆亳从舒亠 仗亳 亳仗仂仍亰仂于舒仆亳亳 Kotlin 从仍舒仂于 舒亰仍亳仆仄亳 亠亶仄于仂从舒仄亳, 从仂仂仄 仆亢亠仆 亟亠仂仍仆亶 从仂仆从仂 弍亠亰 仗舒舒仄亠仂于 于 弍亳仆舒, 仆舒仗亳仄亠 JPA. 仂 仆亠亟舒于仆仂 JetBrains 仗仂仍 仆舒 仗从. 仆亳 仆舒仗亳舒仍亳 仆亠从仂仍从仂 仗亠亳舒仍仆 仗仍舒亞亳仆仂于 - kotlin-allopen, kotlin-noarg, kotlin-spring - 从仂仂亠 亟亠仍舒ム 从仍舒 仂从仄亳 亟仍 仆舒仍亠亟仂于舒仆亳 仗亳 仆舒仍亳亳亳 亠 亳仍亳 亳仆 舒仆仆仂舒亳亶 (仆舒舒亳于舒亠仄仂), 舒 舒从亢亠 亟仂弍舒于仍ム 从仂仆从仂 仗仂 仄仂仍舒仆亳. 仂 亳, kotlin-spring - 仂 仗亠亟仆舒仂亠仆仆亶 仆舒 舒仆仆仂舒亳亳 @Component (@Configuration, @Controller, @RestController, @Service or @Repository), @Async, @Transactional, @Cacheable kotlin-allopen 仗仍舒亞亳仆. 亳仆仂 仆亠 舒仆舒 仂亞仂 亠亠仆亳 (仆舒仗亳仄亠, 从仂亟 仂 StackOverflow 仆舒仗亳舒仆仆亶 亳仄 仗仍舒亞亳仆仂仄 仆亠 弍亟亠 舒弍仂舒 弍亠亰 仆亠亞仂, .亠. 仂亟亳仆 亳 仂 亢亠 从仂亟 于亠亟 亠弍 仗仂-舒亰仆仂仄) 亳 于 于仂仄 从仂亟亠 亠亞仂 亳仗仂仍亰仂于舒 仆亠 弍亟, 仆仂 仗亳仄亠 仗仂从舒亢. P.S. 仆亠 仂, 仂弍 舒仂 从仂仗亳仗舒亳仍 仂 SO...
  4. 亠亰仆舒亳亠仍仆仂亠 仍亠仆亳亠, 亟仂弍舒于仍ム亠亠 6 仗亠亠亞亢亠仆仆 仄亠仂亟仂于 (extensions) registerBean 于 从仍舒 GenericApplicationContext, 舒 舒从亢亠 仗仂亰于仂仍ム亠亠 从仂仆亳亞亳仂于舒 亠亞仂 仗仂仄仂 仍礆弍亟 c 亠亳于亠仂仄 (舒从舒 仗亠亳舒仍仆舒 磶从仂于舒 从仂仆从亳, 仗仂亰于仂仍ム舒 仗亳舒 从亠 DSL). 亅亳 仄亠仂亟 舒弍仂舒ム 亰舒 reified-亳仗仂于 于 inline-仆从亳. reified 亳仗 仗仂亰于仂仍ム 仂弍仂亟亳 type erasure 亰舒 亳仆仍舒亶仆亳仆亞舒 (仗仂亟舒仆仂于从亳), 仂 弍亳舒亠 仆亠仂弍仂亟亳仄仂 于 亠仍亠从亳亳, 于亠亟 亳仗 亳亰于亠仆 仆舒 舒仗亠 从仂仄仗亳仍亳亳 亳亰 从仂仆亠从舒.
  5. 仂仍仂舒 亟亠从舒 舒亳亠仆亳亶 亟仍 于亠仄 亳亰于亠仆仂亞仂 RestTemplate, 于 仂仆仂于仆仂仄 仆亳仄舒ム亳亠 仆舒亟仂弍仆仂 于 仗仂仍亠亟仆亠仄 仗舒舒仄亠亠-亳仗亠 (Person.class). 舒从 亳 于 仍舒亠 舒亳亠仆亳亶 亟仍 GenericApplicationContext, 于 仄舒亞亳 从仂亠 于 reified-亳仗舒. 丐舒从亢亠 于 Spring 5 仗仂磦亳仍 仆仂于亶 从仍舒 - WebClient - 仗亳仆仄 亳仆舒从亳仂仄 亳 仗仂亟亟亠亢从仂亶 Mono / Flux 亳亰 从仂仂弍从亳.
  6. 仂亳 亳 亞仂亟舒 仆舒亰舒亟 于 Spring 仗仂磦亳仍舒 仗仂亟亟亠亢从舒 java.util.Optional 仗亳 于仆亠亟亠仆亳亳 亰舒于亳亳仄仂亠亶, 舒 舒从亢亠 于 MVC 亠亶仄于仂从亠 亟仍 仆亠仂弍磶舒亠仍仆 仗舒舒仄亠仂于. 于仂, 仆舒从仂仆亠, 仄 亟仂亢亟舒仍亳 舒从仂亶 亢亠 仗仂亟亟亠亢从亳 Kotlin nullable-亳仗仂于.
  7. Spring 4.3 仗仂磦亳仍舒 仗仂亟亟亠亢从舒 舒弍仍仂仆仂于 仆舒 磶从舒, 仗仂亟亟亠亢亳于舒ム亳 JSR-223 (仆舒仗亳仄亠, JavaScript c 亟于亳亢从仂仄 Nashhorn). Kotlin 1.1 于于仂亟亳 仗仂亟亟亠亢从 JSR 223. 舒仗舒亳于舒亠 于于仂亟 仂亢仆仂 亳仗仂仍亰仂于舒 从舒从 仗仂亠 String templates, 舒从 亳 弍亳弍仍亳仂亠从亳 亳仗舒 kotlinx.html (亠从仂仄亠仆亟). 舒于亟舒, 仗仂从舒 仂 仆亢仆仂 从仂仆亳亞亳仂于舒 从仂亠-从舒从亳亠 于亠亳 舒仄仂仄, 仆舒亟亠ム 于 弍亟亠仄 仗仂. 亠, 舒 从舒 亢从仂 舒, 亠 从舒从 仄舒亰仂仆从舒, 仗亠 仆亠仗仂仆仆仄亳 仂亳弍从舒仄亳 仆舒 Windows 亳 从仂仄仗亳仍亳亠 舒弍仍仂仆 仗亳 从舒亢亟仂仄 于亰仂于亠!
  8. 舒 舒仄仂仄 亟亠仍亠, 亟仂 仂亞仂 亠 仍舒 仂 仆亠 仂亠仆 于仗亠舒仍ム亳 于亠舒, 仆亠仗舒于亟舒 仍亳? 仂亢亠 弍 从仂-仆亳弍亟 亢亠 仄仂亠仍 于 仂仂仆 Spring 5? 舒弍仂舒仍 RxJava / Spring Reactor? 丐舒从 于仂, Spring 5 仗亠亟仍舒亞舒亠 舒亰舒弍仂亳从舒仄 仆仂于亶 仗仂亟仂亟 从 仆舒仗亳舒仆亳 于亠弍-仗亳仍仂亢亠仆亳亶, 仆亠 仂仆仂于舒仆仆亶 仆舒 舒仆亟舒仆仂仄 Servlet Engine. 亅仂 仆仂于亶 亠舒从亳于仆亶 (仆从亳仂仆舒仍仆亶, 仆亠弍仍仂从亳ム亳亶) 仗仂亟仂亟, 仆舒亰于舒亠仄亶 WebFlux, 亳 亰舒 仆亳仄 仂亳 Spring Reactor / Reactive Streams. 个仆从亳仂仆舒仍仆亶 仗仂仂仄 仂 仍仂亞亳从舒 仂弍舒弍仂从亳 亟舒仆仆 仂仗亳于舒亠 于 亟亠从仍舒舒亳于仆仂仄, 仆从亳仂仆舒仍仆仂仄 亳仍亠 从舒从 从仂仄仗仂亰亳亳 从舒从亳-仂 仗亠仂弍舒亰仂于舒仆亳亶 (仆从亳亶). 弌舒仄仂 仂仗亳舒仆亳亠 仗仂仂从舒 仆亠 于亰于舒亠 仆亳从舒从亳 亟亠亶于亳亶. 仂仂从 仍亳 亠舒亞亳亠 仆舒 亟舒仆仆亠 仗仂 仄亠亠 亳 仗仂仗仍亠仆亳. 亠弍仍仂从亳ム亳亶 仗仂仂仄 仂 仗亠亟仗仂仍舒亞舒亠 亳仗仂仍亰仂于舒 亠亞仂 仆亠弍仍仂从亳ム亳仄亳 API - NIO, CompletableFutures, AsyncRestTemplate, ReactiveMongoTemplate 亳亰弍亠亞舒 弍仍仂从亳仂于仂从 仂仆仂于仆 仗仂仂从仂于, 于仆仂 舒弍仂 于 仗仍. 舒 舒仄仂仄 亟亠仍亠, 舒从仂亶 亢亠 从仂亟 仄仂亢仆仂 弍仍仂 弍 仆舒仗亳舒 亳 亳仗仂仍亰仂于舒仆亳亠仄 从仂仍仍弍亠从仂于, 仆仂 仆亠 舒从 亟仂弍仆仂. WebFlux 仄亠亠 舒弍仂舒 仆舒 Servlet 3.1+ 亳仍亳 仆舒 Netty / Undertow. 仂 于舒仄 仆亠 仆亢仆仂 仗舒亳 - 仗仂仂 仗仂亟从仍ム亳亠 Spring Boot 舒亠.
  9. Publisher 仗弍仍亳从亠 亟舒仆仆亠 Subscriber 仗仂亟仗亳于舒亠 仆舒 Publisher Subscriber 仄仂亢亠 仗舒于仍 仗仂仂从仂仄 亟舒仆仆 (亳仍亳 仂仗亳舒) 亠亠亰 Subscription Processor 仂 从仂仄弍亳仆舒亳 Publisher 亳 Subscriber, 仍亢亳 亟仍 仂亰亟舒仆亳 仗仂仂从仂于 亟舒仆仆 (仂仗亠舒仂仂于), 亞亟亠 仂亟亳仆 亳 仂 亢亠 从仍舒 仄仂亢亠 于仗舒 于 仂弍亠亳 仂仍.
  10. Reactor - 仂 亳仄仗仍亠仄亠仆舒亳 Reactive Streams, 亟仂弍舒于仍ム舒 仆亠从仂仂亠 亳亳. Mono 亳 Flux 仂 仗舒弍仍亳亠, 仗弍仍亳从ム亳亠 0..1 亳仍亳 0..N 仍亠仄亠仆仂于 仂仂于亠于亠仆仆仂. 舒仗亳仄亠 findById - 仂 Mono, findAll, searchByTerm - Flux. 从亟舒 于仂亰仄 亳 Flux 亳 Mono? 亳弍仍亳仂亠从亳 弍亟 仗亠亟仂舒于仍 RS API (仆舒仗亳仄亠, 亠舒从亳于仆亶 亟舒亶于亠 Mongo) 亳仍亳 亢亠 亳 仄仂亢仆仂 仂亰亟舒 舒仄仂仄 亳亰 亟亞亳, 仗亳于仆 仂弍亠从仂于.
  11. 仂亠从 reactor-kotlin 仗亠亟仂舒于仍磳 仆亠从仂仍从仂 舒亳亠仆亳亶 亟仍 仗亠仂弍舒亰仂于舒仆亳 仂亟亳仆仂仆 亰仆舒亠仆亳亶, 仄舒亳于仂于, 从仂仍仍亠从亳亶, 亳仄仂于, ム 于 Mono 亳 Flux.
  12. 仂亢舒仍亠仆亳, 仄亠仆 仂-仂 仆亠 亢亳仍亳 仂弍舒 亳仍 于 仂亟仆仂仄 从仂仆亠从亠 :( 舒仂亳仍. 仗仂仂仄 仗仂亳舒仍 亟仂从: Your Spring Boot WebFlux application should use the RouterFunction or the RequestMapping approach, it is currently not possible to mix them in the same application. 俗\_()_/俗
  13. 亳从仂仍仆舒 从舒, 仆仂 仄仆亠 仂-仂 仆亠 亰舒仍仂, 亟舒 亳 API 亠 仆亠 舒从舒仆亳仍.
  14. 亰舒 仗仂仆亳仄舒仆亳亠...