Fast and Furious: Spring Framework 5
Fast and Furious: Spring Framework 5
Fast and Furious: Spring Framework 5
SPRING FRAMEWORK 5
Aliaksei Zhynhiarouski
jProf#12, 2016
AGENDA
▸ Coding!
2002
Juergen Hoeller open source book code with new name Spring
after J2EE winter
2003
SPRING 1.0
Big growth of popularity
Others frameworks integration (Struts/Hibernate)
AOP support with AspectJ
SPRING 1.2.6
400k Downloads
Lead AspectJ now with Spring team
2006
Spring Security
Spring LDAP
2007
SPRING 2.5
From Interface21 to SpringSource
GROOVY
Acquired G2One – company behind Groovy & Grails
Cloud Foundry – PaaS provider
Hyperic – tools for monitoring Java
Spring 3:
‣ JDK 5+
spring-data-commons
spring-data-jpa
spring-data-mongoDB
spring-data-redis
2013
Reactor 1.0
SPRING BOOT
Bye-Bye Groovy 😥
Reactor 3
Spring Framework 5 M3
CURRENT STATE AND CHALLENGES
DO WE NEED TO CHANGE?
CURRENT STATE AND CHALLENGES
BLOCKING IO
IMPERATIVE CODE
RESOURCE UTILIZATION
SERVLET CONTAINER IN NUTSHELL
SERVLET CONTAINER IN NUTSHELL
FIX SERVLET CONTAINERS
THERE IS ANOTHER WAY
REACTOR/EVENT-LOOP
REACTOR/EVENT-LOOP
HOW TO WRITE NON BLOCKING
RX
CURRENT STATE AND CHALLENGES
NON-BLOCKING IO
REACTIVE CODE
RESOURCE UTILIZATION
HOW TO WRITE NON BLOCKING
REACTIVE STREAMS
▸ Only 4 Interfaces
http://www.reactive-streams.org
https://spring.io/blog/2016/04/19/understanding-reactive-types
ONLY 4 INTERFACES
REACTIVE STREAMS
SPRING + REACTOR + RX = 🌞
REACTIVE STREAMS EVERYWHERE
REACTIVE STREAMS EVERYWHERE
UNDER THE HOOD
MONO<T>
FLUX<T>
WHAT’S NEW
Core updates
‣ Java 8 in the core
Web
Roadmap
‣ 5.0 M3 available now
‣ 5.0 GA Q1
http://www.reactive-streams.org
https://spring.io/blog/2016/04/19/understanding-reactive-types
Aliaksei Zhynhiarouski
twitter: @a_lithium