Skip to content

spring-boot

v4.1.2
spring-projects/spring-boot

Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss.

Version of spring-projects/spring-boot you run

CompareView on GitHub

Supported versions

Source: endoflife.date
LineLatestReleasedSecurity fixes
4.14.1.2Jun 30, 2026Until Jul 31, 2027
4.04.0.9Nov 30, 2025Until Dec 31, 2026
3.53.5.16May 31, 2025Ended Jun 30, 2026
3.43.4.13Nov 30, 2024Ended Dec 31, 2025
3.33.3.13May 31, 2024Ended Jun 30, 2025
3.23.2.12Nov 30, 2023Ended Dec 31, 2024
3.13.1.12May 31, 2023Ended Jun 30, 2024
3.03.0.13Nov 24, 2022Ended Dec 31, 2023
2.72.7.18May 31, 2022Ended Jun 30, 2023
2.62.6.15Nov 17, 2021Ended Nov 24, 2022
2.52.5.15May 20, 2021Ended May 19, 2022
2.42.4.13Nov 12, 2020Ended Nov 18, 2021

Release history

All releases on GitHub
BadgeLatest version of spring-projects/spring-boot[![version](/badge/spring-projects/spring-boot)](/p/spring-projects/spring-boot)

:star: New Features

  • Remove LDAP SSL reload support #52365
  • Add support for X-Forwarded-Prefix with Reactor Netty #52316

:lady_beetle: Bug Fixes

  • Setting management.observations.conventions to open-telemetry enables neither semantic convention #52619
  • PushGatewayTaskScheduler does not correctly shutdown task scheduler when context is closed #52591
  • ClearCachesApplicationListener does not find inherited clearCache() methods #52589
  • MongoTransactionManager created by BatchDataMongoAutoConfiguration is not customized by TransactionManagerCustomizers #52572
  • Configuration processor does not handle known types when they are fully-qualified #52571
  • Invalid AMQP Rabbit host is reported with the wrong value #52568
  • Avoid premature overflow when converting durations to microseconds #52561
  • Binding a value from a config tree fails after a collection of the same element type has been bound from the same config tree #52559
  • JsonWriter writes invalid JSON when usingPairs is used with a named member #52549
  • Logback GELF structured logging writes a null short\_message when the log message is null #52547
  • Auto-configured KafkaTransactionManager is not customized by TransactionManagerCustomizers #52542
  • Custom layers in the Gradle plugin include excluded content instead of excluding it #52540
  • RabbitMQ addresses without a port use the AMQP port when SSL is enabled #52538
  • BasicJsonParser does not decode \b, \f, \n, \r, \t and \uXXXX escape sequences #52534
  • NestedJarFile.getComment() fails with an EOFException when the jar has no comment #52513
  • Plain text thread dump reports threads in Object.wait() as parking on Java 19+ #52511
  • When using both spring-boot-amqp-rabbitmq and spring-boot-rabbitmq health information from the latter is lost #52506
  • JSON parse failures no longer produce DockerOutputParseExceptions #52500
  • ECS structured logging writes empty service and service.node objects #52497
  • ConfigurationMetadataAnnotationProcessor produces non-repeatable output if multiple endpoints share the same ID #52494
  • Graceful shutdown does not wait for active requests after a restart of Tomcat or Jetty #52490
  • RabbitMQ uses the wrong port by default when an SSL bundle is configured #52488
  • Auto-configured R2dbcTransactionManager is not customized by TransactionManagerCustomizers #52485
  • JsonWriter writes NaN and infinite values as invalid JSON #52483
  • ZipEndOfCentralDirectoryRecord finds the record signature inside the zip comment #52481
  • LLdap Docker Compose support fails to connect when LLDAP\_LDAP\_USER\_DN is configured #52475
  • ZipContent.Entry hasNameStartingWith ignores the offset of virtualized nested directory names #52464
  • ZipContent cannot open a zip with data after the end of central directory record #52461
  • ZipContent reads the zip comment from the wrong position when the archive has prefixed data #52459
  • Root logger configuration cannot be retrieved and has no configured level with Log4j2 #52455
  • Docker Compose OTLP integration requires gRPC and HTTP ports to be exposed when only HTTP is used #52451
  • Spring Batch JDBC auto-configuration connects to the database on startup to detect its type, with no way to configure it #52449
  • OnAvailableEndpointCondition caches retain closed application contexts through their Environment #52447
  • DataSourceTransactionManagerAutoConfiguration uses an old and no-longer-supported property to control exception translation #52445
  • Tomcat's new 'maxLocaleCount' property cannot be easily configured #52443
  • DevTools leaks a File Watcher thread for every failed restart #52441
  • SSL bundle ciphers and enabled protocols are sometimes silently ignored when the underlying component does not support their configuration #52438
  • AMQP 1.0 should not set any credential to use ANONYMOUS by default #52435
  • Default RabbitMQ AMQP 1.0 port to 5671 when an SSL bundle is configured #52432
  • Hikari does not register its own MBeans when lazy connection fetching is used with JMX enabled #52426
  • SSL bundle ciphers and enabled protocols are ignored by RabbitMQ clients #52416
  • SSL bundle ciphers and enabled protocols are ignored by Kafka clients #52413
  • Health endpoint fails with an internal error for a path with an unknown intermediate segment #52411
  • Servlet application fails to start when both JWT and opaque token resource server properties are configured #52409
  • Runners can be invoked after the application context has closed during startup #52408
  • Binding @ConfigurationProperties beans concurrently can corrupt BoundConfigurationProperties and fail the bind #52406
  • Auto-configured JavaMailSender does not apply SSL bundle ciphers or enabled protocols #52404
  • Class path root cannot be resolved in executable jars after #52246 #52402
  • Kotlin Serialization does not back off when JSON-B is the only JSON converter #52389
  • Matrix parameters distort the values passed to a match all remaining selector when using WebMvc or WebFlux #52378
  • Server name SSL bundles with upper-case server names are not used with Netty #52364
  • Config data locations with brackets in their path are not loaded correctly #52360
  • Closing the context can hang when Hikari pool suspension is enabled #52359
  • OriginTrackedPropertiesLoader drops the line following a comment that ends with a backslash #52357
  • Closing a child context stops the keep-alive thread #52344
  • MimeMappings copies of DEFAULT are empty and equals is asymmetric #52342

Full release notesCompare with previous