Spring Boot Versions

Spring Boot Versions

In this article, I am going to discuss Spring Boot Versions in detail. Please read our previous article where we discussed What is Spring Boot.

Spring Boot Versions

The latest version of Spring Boot is version 3.0.5. In this version, several bug fixes have been implemented. Also, dependencies have been upgraded. This version of spring boot uses Spring Framework version 6.

New Features in Spring Framework 6

As Spring Boot 3.0.5 uses Spring Framework 6, all improvements and features of Spring Framework 6 are available in Spring Boot. The new features are:

  • Support for Java 17+. Support has been added for the latest versions of Java, including Java 17, 18, 19, and 20 (the latest version of Java). Spring Framework codebase has been updated to be compatible with Java 17.
  • Compatibility with Jakarta Enterprise Edition 9 and 10. Jakarta EE is a set of specifications, which extends Java Standard Edition. This adds special enterprise features to Java SE, such as web services and distributed computing.
  • Improved compatibility with the latest server, Tomcat 10.1.
Bug Fixes

The following bugs have been fixed:

  • EmbeddedWebServerFactoryCustomizerAutoConfiguration will not run when the embedded web server is not configured.
  • StandardConfigDataResource can import the same file twice if the classpath includes ‘.’.
  • Loading application.yml no longer fails with NoSuchMethodError when using SnakeYAML 2.0
  • @ConfigurationProperties no longer works on a mutable Kotlin data class
  • Image builds with Podman fail when image build packs are configured
  • Use of @EntityScan causes AOT instance supplier code generation error.
Dependency Upgrades

Some of the more popular upgraded dependencies are:

  • Couchbase Client 3.4
  • Ehcache 3.10
  • Elasticsearch Client 8.5
  • Flyway 9
  • Groovy 4.0
  • Hibernate 6.1
  • Hibernate Validator 8.0
  • Jackson 2.14
  • Jersey 3.1
  • Jetty 11
  • jOOQ 3.16
  • Kotlin 1.7.20
  • Liquibase 4.13
  • Lettuce 6.2
  • Log4j 2.18
  • Log back 1.4
  • Micrometer 1.10
  • Micrometer Tracing 1.0
  • Neo4j Java Driver 5.2
  • Netty 4.1.77.Final
  • OkHttp 4.10
  • R2DBC 1.0
  • Reactor 2022.0
  • SLF4J 2.0
  • SnakeYAML 1.32
  • Tomcat 10
  • Thymeleaf 3.1.0.M2
  • Undertow 2.2.20.Final
GraalVM Native Image Support

GraalVM is a new way to run Java applications. In comparison with a standard Java Virtual Machine (JVM), GraalVM has a lower start-up time and a lower memory footprint. In other words, GraalVM is a high-performance JDK that provides similar functionality to a JVM but is considerably lighter. Furthermore, GraalVM also offers support for other runtimes, such as JavaScript (JS) and Python.

Minimum Requirements

The minimum requirements for Spring Boot 3.0.5 are:

  • Java 17+
  • Gradle 7.5+
  • Tomcat 10+
  • Jetty 11+
  • Undertow 2.2+ (Jakarta EE9)
  • GraalVM Community Edition 22.3+
  • Native Build Tools 0.9.20+
Deprecations in Spring Boot 3.0

Deprecation in software engineering is when some feature is removed from software/program. This may be because the feature is no longer used by most developers/users. The following deprecations took place when Spring Boot 3.0 was released:

  • @ConstructorBinding is no longer in the org.springframework.boot.context.properties package. It is now relocated to the org.springframework.boot.context.properties.bind package.
  • JsonMixinModule scanning-based constructor has been deprecated.
  • ClientHttpRequestFactorySupplier is replaced with ClientHttpRequestFactories.
  • Cookie comment properties are no longer supported.
  • RestTemplateExchangeTagsProvider, WebClientExchangeTagsProvider, WebFluxTagsProvider, WebMvcTagsProvider, and related classes have been replaced with ObservationConvention equivalents.
  • The no-args constructors on HealthContributor @Configuration base classes are no longer supported.
  • DefaultTestExecutionListenersPostProcessor and SpringBootDependencyInjectionTestExecutionListener have been replaced by Spring Framework’s ApplicationContextFailureProcessor.
  • The properties management.metrics.export.<product> are deprecated, and the replacement is management.<product>.metrics.export.
  • The push setting of management.prometheus.metrics.export.pushgateway.shutdown-operation in favor of post.
  • @AutoConfigureMetrics has replaced by @AutoConfigureObservability.

In the next article, I am going to discuss How to set up the Development Environment for Developing Spring Boot Applications. Here, in this article, I try to explain Spring Boot Versions. I hope you enjoy this Spring Boot Versions article.

Leave a Reply

Your email address will not be published. Required fields are marked *