From Spring Framework 5.3 to 6.0

VMware Tanzu
VMware TanzuVMware Tanzu
Juergen Hoeller
September 2021
From Spring Framework 5.3
to 6.0
Copyright © 2021 VMware, Inc. or its affiliates.
Agenda
● State of the art
● Preparing for 6.0
● JDK & Jakarta EE
● Native and AOT
● Observability
● Pruning
● Roadmap
State of the art: Spring Framework 5.3.x
Spring Framework 5.3.x remains in active development
● On its established infrastructure baseline
● Java 17 support - against a Java 8 baseline
● Java EE 8 focus - against a Java EE 7 baseline
● Keep using Tomcat 8.5 / 9.0, Jetty 9.4 / 10, etc
Spring Boot 2.6 and 2.7 based on Spring Framework 5.3.x line
● Java 17 support in Boot 2.6 - November 2021
● Further features and infrastructure upgrades in Boot 2.7 - May 2022
Preparing for Spring Framework 6.0
Spring Framework 6.0 will be the beginning of a new generation
● Development branch (main) to be established in mid September
● Kicking off the milestone phase at the end of 2021
● Entering the release candidate phase in mid 2022
A series of 6.x feature releases to follow
● Release cadence not decided yet - might follow Boot’s half-year rhythm
● In any case, you won’t simply be upgrading to Spring Framework 6.0 GA
● You will rather be following the Spring Framework 6.x feature releases
Java 17 & Jakarta EE 9
A new baseline for a new generation of Spring applications
● Java 17 - many Java language, core API, JVM runtime benefits
● Jakarta EE 9 - e.g. Tomcat 10, Jetty 11
● Hibernate ORM 6, etc
Future-proof - but with some initial compatibility breakage
● JDK 17 enforces illegal access rules - no general escape hatch anymore
● Jakarta EE 9 repackages javax to jakarta namespace - e.g. jakarta.servlet
● Preparing for upcoming further evolution: JDK 18 & 19, Jakarta EE 10
Native executables and AOT processing
Spring Native initiative moving into Spring proper
● Deploying a native executable to GraalVM
● AOT processed metadata available for regular JVM deployment as well
● Foundational facilities and key enablers in Spring Framework 6.0
First-class support for native executable deployment in Boot 3.0
● Spring Boot starter for native applications
● Build plugins and native configuration hints
● Support for specific GraalVM versions
Observability revisited
Spring Observability initiative moving into Spring proper
● Unified API for recording and measuring actions - e.g. metrics & tracing
● Integrating with Micrometer, Wavefront, Zipkin, Brave, OpenTelemetry
● Instrument once using a common API for many observability benefits
A portfolio wide initiative
● Spring Framework 6.0 introducing core abstractions
● Spring portfolio projects consistently integrating with them
● Spring Boot 3.0 auto-configuring the observability backend
Pruning and deprecations
Spring Framework 6.0 is an opportunity to drop outdated features
● Outdated core container features - e.g. autowiring setters by name/type
● Outdated configuration variants - e.g. certain FactoryBean arrangements
● Outdated configuration settings - e.g. certain web-related options
Also, an opportunity to drop outdated third-party integrations
● Generational baseline upgrade for other open source projects
● Driven by Jakarta EE 9 and its namespace change
● Possibly even dropping certain EE support arrangements (e.g. EJB, JAX-WS)
Roadmap
Spring Framework 6.0 - a complete draft roadmap
● 6.0 M1 in November/December 2021
● 6.0 M2
● 6.0 M3
● 6.0 M4
● 6.0 RC1 in July 2022
● 6.0 RC2
● 6.0 RC3
● 6.0 GA in October 2022
Community involvement
Let us know about your target infrastructure for 2022+
● JDK 17 LTS - or rather following JDK 18, 19, etc
● Third-party open source projects in strategic use
● Backwards compatibility concerns
Configuration style preferences vs. unused features
● Preferred configuration variants in strategic use
● Long unused features that you would not miss
● Relevance of EE APIs and EE deployment options
Check out 6.0 milestones
And please keep the feedback coming ...
© 2021 Spring. A VMware-backed project.
1 of 11

More Related Content

What's hot(20)

Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
Purbarun Chakrabarti1K views
What's new in Java 11What's new in Java 11
What's new in Java 11
Michel Schudel244 views
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
Santosh Kumar Kar19.3K views
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
VMware Tanzu1.6K views
Spring bootSpring boot
Spring boot
Pradeep Shanmugam625 views
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
Josué Neis696 views
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
Naphachara Rattanawilai7.8K views
Spring annotationSpring annotation
Spring annotation
Rajiv Srivastava3K views
Maven IntroductionMaven Introduction
Maven Introduction
Sandeep Chawla21.1K views
Spring BootSpring Boot
Spring Boot
Jaran Flaath540 views
Spring jdbcSpring jdbc
Spring jdbc
Harshit Choudhary153 views
Spring CoreSpring Core
Spring Core
Pushan Bhattacharya7.3K views
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
Jeevesh Pandey3K views
SpringBoot 3 ObservabilitySpringBoot 3 Observability
SpringBoot 3 Observability
Knoldus Inc.211 views
Spring bootSpring boot
Spring boot
sdeeg26.6K views
Connecting Connect with Spring BootConnecting Connect with Spring Boot
Connecting Connect with Spring Boot
Vincent Kok1.1K views
Spring FrameworkSpring Framework
Spring Framework
nomykk1.8K views
Maven tutorialMaven tutorial
Maven tutorial
Dragos Balan1.8K views

More from VMware Tanzu(20)

Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu54 views
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
VMware Tanzu153 views
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
VMware Tanzu13 views

Recently uploaded(20)

www.hyperdo.app to do app for adhd.pptxwww.hyperdo.app to do app for adhd.pptx
www.hyperdo.app to do app for adhd.pptx
Audrius Janulis14 views
WHMCS CUSTOM SERVICESWHMCS CUSTOM SERVICES
WHMCS CUSTOM SERVICES
WHMCS Smarters17 views
The Case Against Frameworks - JFall 2023The Case Against Frameworks - JFall 2023
The Case Against Frameworks - JFall 2023
Jan-Hendrik Kuperus14 views
Green Cloud - Measure cloud emissionsGreen Cloud - Measure cloud emissions
Green Cloud - Measure cloud emissions
Green Software Development28 views
esqlfunctions.pdfesqlfunctions.pdf
esqlfunctions.pdf
Votarikari Shravan147 views
Java-ML-lego-j-fallJava-ML-lego-j-fall
Java-ML-lego-j-fall
Jago de Vreede46 views

From Spring Framework 5.3 to 6.0

  • 1. Juergen Hoeller September 2021 From Spring Framework 5.3 to 6.0 Copyright © 2021 VMware, Inc. or its affiliates.
  • 2. Agenda ● State of the art ● Preparing for 6.0 ● JDK & Jakarta EE ● Native and AOT ● Observability ● Pruning ● Roadmap
  • 3. State of the art: Spring Framework 5.3.x Spring Framework 5.3.x remains in active development ● On its established infrastructure baseline ● Java 17 support - against a Java 8 baseline ● Java EE 8 focus - against a Java EE 7 baseline ● Keep using Tomcat 8.5 / 9.0, Jetty 9.4 / 10, etc Spring Boot 2.6 and 2.7 based on Spring Framework 5.3.x line ● Java 17 support in Boot 2.6 - November 2021 ● Further features and infrastructure upgrades in Boot 2.7 - May 2022
  • 4. Preparing for Spring Framework 6.0 Spring Framework 6.0 will be the beginning of a new generation ● Development branch (main) to be established in mid September ● Kicking off the milestone phase at the end of 2021 ● Entering the release candidate phase in mid 2022 A series of 6.x feature releases to follow ● Release cadence not decided yet - might follow Boot’s half-year rhythm ● In any case, you won’t simply be upgrading to Spring Framework 6.0 GA ● You will rather be following the Spring Framework 6.x feature releases
  • 5. Java 17 & Jakarta EE 9 A new baseline for a new generation of Spring applications ● Java 17 - many Java language, core API, JVM runtime benefits ● Jakarta EE 9 - e.g. Tomcat 10, Jetty 11 ● Hibernate ORM 6, etc Future-proof - but with some initial compatibility breakage ● JDK 17 enforces illegal access rules - no general escape hatch anymore ● Jakarta EE 9 repackages javax to jakarta namespace - e.g. jakarta.servlet ● Preparing for upcoming further evolution: JDK 18 & 19, Jakarta EE 10
  • 6. Native executables and AOT processing Spring Native initiative moving into Spring proper ● Deploying a native executable to GraalVM ● AOT processed metadata available for regular JVM deployment as well ● Foundational facilities and key enablers in Spring Framework 6.0 First-class support for native executable deployment in Boot 3.0 ● Spring Boot starter for native applications ● Build plugins and native configuration hints ● Support for specific GraalVM versions
  • 7. Observability revisited Spring Observability initiative moving into Spring proper ● Unified API for recording and measuring actions - e.g. metrics & tracing ● Integrating with Micrometer, Wavefront, Zipkin, Brave, OpenTelemetry ● Instrument once using a common API for many observability benefits A portfolio wide initiative ● Spring Framework 6.0 introducing core abstractions ● Spring portfolio projects consistently integrating with them ● Spring Boot 3.0 auto-configuring the observability backend
  • 8. Pruning and deprecations Spring Framework 6.0 is an opportunity to drop outdated features ● Outdated core container features - e.g. autowiring setters by name/type ● Outdated configuration variants - e.g. certain FactoryBean arrangements ● Outdated configuration settings - e.g. certain web-related options Also, an opportunity to drop outdated third-party integrations ● Generational baseline upgrade for other open source projects ● Driven by Jakarta EE 9 and its namespace change ● Possibly even dropping certain EE support arrangements (e.g. EJB, JAX-WS)
  • 9. Roadmap Spring Framework 6.0 - a complete draft roadmap ● 6.0 M1 in November/December 2021 ● 6.0 M2 ● 6.0 M3 ● 6.0 M4 ● 6.0 RC1 in July 2022 ● 6.0 RC2 ● 6.0 RC3 ● 6.0 GA in October 2022
  • 10. Community involvement Let us know about your target infrastructure for 2022+ ● JDK 17 LTS - or rather following JDK 18, 19, etc ● Third-party open source projects in strategic use ● Backwards compatibility concerns Configuration style preferences vs. unused features ● Preferred configuration variants in strategic use ● Long unused features that you would not miss ● Relevance of EE APIs and EE deployment options
  • 11. Check out 6.0 milestones And please keep the feedback coming ... © 2021 Spring. A VMware-backed project.