![Page 1: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/1.jpg)
REACTIVE
SPRING 5
![Page 2: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/2.jpg)
WHO AM I? • SE at Levi9
• 5+ dev experience
• Spring fan
/oleh.dokuka
/OlegDokuka
![Page 3: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/3.jpg)
AGENDA • Spring 5 Road-Map
• 5.0 M1-M4
• 5.0 RC1
• 5.X
• Q&A
• Reactive Spring
• Brief of history and problems
• Reactive-Streams Community
• Project Reactor
• Reactive Web
• Demo
• Q&A
![Page 4: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/4.jpg)
SPRING 5
ROAD MAP
![Page 5: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/5.jpg)
5.0 M1 JULY 2016
5.0 RC1 DECEMBER 2016
5.0 GA Q1 2017
FRAMEWORK
GENERATION
![Page 6: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/6.jpg)
5.0 M1 JULY 2016
5.0 RC1 DECEMBER 2016
5.0 GA Q1 2017
FRAMEWORK
GENERATION
![Page 7: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/7.jpg)
JDK 8+, Servlet API 3.1+, JPA 2.1+, JUnit
5
BASE LINE
![Page 8: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/8.jpg)
5.0 M1
![Page 9: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/9.jpg)
5.0 M1
• Constructor based instantiation
Class.newInstance()
Constructor.newInstance()
![Page 10: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/10.jpg)
5.0 M1
• Constructor based instantiation
• JMS 2.0
![Page 11: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/11.jpg)
5.0 M1
• Constructor based instantiation
• JMS 2.0
• Upgrade to JPA 2.1+ and Bean Validation 1.1+ (Hibernate ORM
5.0+, Hibernate Validator 5.0+, EclipseLink 2.5+)
![Page 12: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/12.jpg)
5.0 M1
• Constructor based instantiation
• JMS 2.0
• Upgrade to JPA 2.1+ and Bean Validation 1.1+ (Hibernate ORM
5.0+, Hibernate Validator 5.0+, EclipseLink 2.5+)
• Reactive client and server HTTP adapters
![Page 13: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/13.jpg)
5.0 M2
![Page 14: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/14.jpg)
5.0 M2
• Support for RxJava 2
![Page 15: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/15.jpg)
5.0 M2
• Support for RxJava 2
• New controller for Spring MVC using Lambda
Ratpack
Spring
![Page 16: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/16.jpg)
5.0 M2
• Support for RxJava 2
• New controller for Spring MVC using Lambda
• Upgrade build to Gradle 3.0
![Page 17: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/17.jpg)
5.0 M2
• Support for RxJava 2
• New controller for Spring MVC using Lambda
• Upgrade build to Gradle 3.0
• Reactive Web improvements
![Page 18: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/18.jpg)
5.0 M3-M4
![Page 19: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/19.jpg)
5.0 M3-M4
• Reactive Web improvements
• Reactive Web Socket
• JUnit 5 integration improvements
![Page 20: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/20.jpg)
5.0-RC1
![Page 21: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/21.jpg)
5.0-RC1
• Spring Framework jars on the JDK 9 module path
![Page 22: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/22.jpg)
5.X
![Page 23: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/23.jpg)
5.X
• Spring MVC REST client
![Page 24: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/24.jpg)
5.X
• Spring MVC REST client
• JSR 365 (CDI 2.0) - new dependency injection API support
![Page 25: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/25.jpg)
5.X
• Spring MVC REST client
• JSR 365 (CDI 2.0) - new dependency injection API support
• Servlet 4.0
![Page 26: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/26.jpg)
5.X
• Spring MVC REST client
• JSR 365 (CDI 2.0) - new dependency injection API support
• Servlet 4.0
• JMS 2.1
![Page 27: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/27.jpg)
5.X
• Spring MVC REST client
• JSR 365 (CDI 2.0) - new dependency injection API support
• Servlet 4.0
• JMS 2.1
• Full JDK 9 compatibility
![Page 28: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/28.jpg)
5.X
• Spring MVC REST client
• JSR 365 (CDI 2.0) - new dependency injection API support
• Servlet 4.0
• JMS 2.1
• Full JDK 9 compatibility
• Parallel bean initialization during startup
![Page 29: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/29.jpg)
Q&A
![Page 30: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/30.jpg)
RESOURCES • https://goo.gl/pavuV5 - Spring
Framework JIRA Dashboard
• https://goo.gl/UQ4zpe - Spring
Framework 5.0 M1 released
• https://goo.gl/zMVc9U - SpringOne
Platform 2016 Keynote - Spring 5
![Page 31: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/31.jpg)
![Page 32: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/32.jpg)
CALLBACK
![Page 33: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/33.jpg)
CALLBACK
![Page 34: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/34.jpg)
CALLBACK
![Page 35: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/35.jpg)
CALLBACK
![Page 36: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/36.jpg)
CALLBACK
![Page 37: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/37.jpg)
CALLBACK
![Page 38: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/38.jpg)
![Page 39: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/39.jpg)
![Page 40: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/40.jpg)
Map Actions
Process Actions and aggregate results
Run the flow
![Page 41: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/41.jpg)
![Page 42: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/42.jpg)
BUT NOT ENOUGH
REACTIVE JAVA 8
java.util.concurrent.
CompletionStage java.util.stream.
Stream
![Page 43: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/43.jpg)
— Doug Lee
THERE IS NO SINGLE BEST FLUENT
ASYNC/PARALLEL API.
COMPLETIONSTAGE BEST SUPPORTS
CONTINUATION-STYLE PROGRAMMING ON
FUTURES, AND JAVA.UTIL.STREAM BEST
SUPPORTS (MULTI-STAGE, POSSIBLY-
PARALLEL) "PULL" STYLE OPERATIONS ON
THE ELEMENTS OF COLLECTIONS. ... ONE
MISSING CATEGORY WAS
"PUSH"
»
«
![Page 44: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/44.jpg)
UNSOLVED PROBLEMS
• in-stream communication
• backpressure
• no common api
![Page 45: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/45.jpg)
![Page 46: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/46.jpg)
REACTIVE STREAMS PUBLISHER SUBSCRIBER
SUBSCRIPTION
![Page 47: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/47.jpg)
ONE API
![Page 48: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/48.jpg)
![Page 49: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/49.jpg)
PROJECT REACTOR
Flux Stream…………………………..
…
Mono CompletionStage………………..
![Page 50: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/50.jpg)
REACTIVE EFFORTS
![Page 51: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/51.jpg)
@Controller, @RequestMapping,…
Spring MVC
Servlet API
Servlet Container
Spring Web Reactive
Reactive HTTP
Servlet, Netty, Undertow
![Page 52: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/52.jpg)
![Page 53: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/53.jpg)
![Page 54: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/54.jpg)
![Page 55: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/55.jpg)
![Page 56: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/56.jpg)
![Page 57: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/57.jpg)
![Page 58: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/58.jpg)
![Page 59: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/59.jpg)
![Page 60: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/60.jpg)
![Page 61: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/61.jpg)
![Page 62: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/62.jpg)
DEMO
![Page 63: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/63.jpg)
DEMO BASED ON
CREATED BY THAT
WEATHER APP
![Page 64: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/64.jpg)
![Page 65: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/65.jpg)
![Page 66: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/66.jpg)
Q&A
![Page 67: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/67.jpg)
RESOURCES • https://goo.gl/M0vMxT - Generations of Reactivity
• https://goo.gl/8ZgrHw - Reactive Web
• https://youtu.be/Xm-
KjMY_Z_w?list=PLAdzTan_eSPQ1fuLSBhyB4eEZF7JQ
M0Mx - SpringOne Platform 2016 Keynote - Reactive
Spring
• https://goo.gl/bIwZxn - Reactive Streams GitHub
• https://youtu.be/Cj4foJzPF80 - Developing Reactive
applications with Reactive Streams and Java 8
![Page 68: REACTIVE SPRING 5 - JUG.uajug.ua/wp-content/uploads/2016/10/Spring5.pdf · REACTIVE JAVA 8 java.util.concurrent. CompletionStage java.util.stream. Stream ... M0Mx - SpringOne Platform](https://reader031.vdocuments.us/reader031/viewer/2022012918/5e7572e2607e5211296a771a/html5/thumbnails/68.jpg)
THANK YOU