spring-boot
v4.1.2Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss.
- Maintenance
- Active1690 commits in 3 months · bus factor 2
- License
- Apache-2.0Permissive · OSI-approved
- Security
- No advisories publishedScorecard 5.6/10
- Supported versions
- 2 lines supportednewest 4.1 · oldest 4.0 until Dec 31, 2026 · 10 ended
81.9k stars · 42.7k forks · 531 open issues · last release 23 days ago · data checked 2 hours ago
Supported versions
Source: endoflife.date| Line | Latest | Released | Security fixes |
|---|---|---|---|
| 4.1 | 4.1.2 | Jun 30, 2026 | Until Jul 31, 2027 |
| 4.0 | 4.0.9 | Nov 30, 2025 | Until Dec 31, 2026 |
| 3.5 | 3.5.16 | May 31, 2025 | Ended Jun 30, 2026 |
| 3.4 | 3.4.13 | Nov 30, 2024 | Ended Dec 31, 2025 |
| 3.3 | 3.3.13 | May 31, 2024 | Ended Jun 30, 2025 |
| 3.2 | 3.2.12 | Nov 30, 2023 | Ended Dec 31, 2024 |
| 3.1 | 3.1.12 | May 31, 2023 | Ended Jun 30, 2024 |
| 3.0 | 3.0.13 | Nov 24, 2022 | Ended Dec 31, 2023 |
| 2.7 | 2.7.18 | May 31, 2022 | Ended Jun 30, 2023 |
| 2.6 | 2.6.15 | Nov 17, 2021 | Ended Nov 24, 2022 |
| 2.5 | 2.5.15 | May 20, 2021 | Ended May 19, 2022 |
| 2.4 | 2.4.13 | Nov 12, 2020 | Ended Nov 18, 2021 |
Release history
All releases on GitHubAtom feed/feed/spring-projects/spring-boot
Badge
[](/p/spring-projects/spring-boot)
:star: New Features
: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
@ConfigurationPropertiesbeans 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