This document discusses the history and current state of the Spring Framework and previews new features in Spring Framework 5. It outlines the challenges of blocking I/O and imperative code in traditional Spring applications and how Spring 5 aims to address this through support for reactive programming with Reactor and RxJava. Key new aspects of Spring 5 include Java 8 support, HTTP/2 integration, reactive controllers and routing, and integration of Reactive Streams for asynchronous non-blocking code.
2. AGENDA
TIME TO LEARN MORE
▸ History of Spring Framework from version 1 to 5
▸ Current state of “Enterprise” Java and challenges
▸ What awaits us with Spring 5?
▸ Coding!
3. 2002
PROTOTYPE IN THE BOOK
Rod Johnson “Expert One-on-One J2EE Design and Development”
with no mention of Spring
30k LOC under com.interface21 Check code on Github
Juergen Hoeller open source book code with new name Spring
after J2EE winter
7. 2006
SPRING 2.0 & 1_000_000 DOWNLOADS
Spring Security
Spring Web Flow
Spring LDAP
8. 2007
SPRING 2.5
Investments $10m & 3m Downloads
From Interface21 to SpringSource
Spring Integration is announced
Spring Webservice is announced
Spring Batch is announced
9. 2008
GROOVY
Acquired G2One – company behind Groovy & Grails
Spring Batch 1.0
Spring Integration 1.0
Spring Team behind projects like Tomcat, Apache HTTP Server
Cloud Foundry – PaaS provider
Hyperic – tools for monitoring Java
10. 2009
SPRING 3.0 & VMWARE
SpringSource acquired by VMWare for $420m
Spring 3:
‣ JDK 5+
‣ Modularize uber Jar
‣ Comprehensive REST support
‣ Spring Expression Language
11. 2010-2011
SPRING DATA & SPRING AMQP
VMWare bought RabbitMQ company
spring-data-commons
spring-data-jpa
spring-data-mongoDB
spring-data-redis
12. 2013
SPRING 4.0 & PIVOTAL
Pivotal was born
Reactor 1.0
Spring IO Platform announced
Spring Boot introduced
JDK 8 and WebSocket support
SPR-9044
13. 2014-2015
SPRING BOOT
Spring Boot 1.0 Released
Spring XD 1.0 Released
Bye-Bye Groovy 😥
Spring Cloud available (with Netflix OSS)
Spring Framework 4.2.3 in the end of 2015
14. 2016
SPRING FRAMEWORK 4.3
Last release in 4.3 branch
support until 2020
will work with JDK 6,7,8,9
and Tomcat 6-9
Spring Framework 5 M3
Reactor 3
27. REACTIVE STREAMS
The core concern of Reactive Streams is handling backpressure.
In a nutshell, backpressure is a mechanism that permits a receiver to ask how
much data it wants to receive from the emitter. It allows:
▸ The receiver to start receiving data only when it is ready to
process it
▸ To control the inflight amount of data
▸ Efficient handling of slow emitter/fast receiver or fast emitter/
slow receiver use cases
▸ To switch from a dynamic push-pull strategy to a push-based
only strategy if you request Long.MAX_VALUE elements
36. WHAT’S NEW
SPRING FRAMEWORK 5.0
Core updates
‣ Java 8 in the core
‣ Java 9 full compatibility, no jigsaw
Web
‣ HTTP/2 on client and server HTTP/2 Comes to Java
‣ Reactive Streams based controllers
‣ Alternatives to annotated controllers handlers design
‣ Lambda oriented HTTP routing & processing
SPR-13716
37. WHAT’S NEW
SPRING FRAMEWORK 5.0
Roadmap
‣ 5.0 M3 available now
‣ 5.0 RC1: Dec 2016/Jan 2017
‣ 5.0 GA Q1
JDK 8+, Servlet 3.1, JMS 2.0+, JPA 2.1+, JUnit 5
Major baseline updates with Java EE 7