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.

From Spring Framework 5.3 to 6.0

  • 1.
    Juergen Hoeller September 2021 FromSpring Framework 5.3 to 6.0 Copyright © 2021 VMware, Inc. or its affiliates.
  • 2.
    Agenda ● State ofthe art ● Preparing for 6.0 ● JDK & Jakarta EE ● Native and AOT ● Observability ● Pruning ● Roadmap
  • 3.
    State of theart: 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 SpringFramework 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 andAOT 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 Observabilityinitiative 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 SpringFramework 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 usknow 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.0milestones And please keep the feedback coming ... © 2021 Spring. A VMware-backed project.