Releases: spring-projects/spring-boot
v3.3.1
🐞 Bug Fixes
- SQL Server JDBC URL is malformed after adding org.springframework.boot.jdbc.parameters label #41169
- Git instant properties cannot be coerced following git-commit-id Maven plugin upgrade #41152
- Excluding status code from DefaultErrorAttributes throws NPE #41141
- Spring Boot remote restart with devtools causes 'factory already defined' Tomcat error when running with 'java -jar' #41107
- MongoHealthIndicator not compliant with Mongo stable API with strict setting #41104
- Service connection for bitnami mongodb fails to connect #41097
- Image building requires builder to specify a stack #41091
- DataSourceProperties fail to bind if java.sql module isn't included #41084
- AOT causes Logback configuration error when using include #41081
- Image building hangs when builder and buildpack are configured #41049
- IllegalArgumentException when trying to use Tomcat's HttpNio2Protocol with Spring Boot-configured SSL #41010
- Uber jar fails to start when it contains a dependency with Multi-Release: true in its manifest and unexpected file entries in META-INF/versions #41006
- JSP-related resources may not be found in an executable war file when using Jetty #40996
- The value of the tomcat.threads.config.max metric is always -1, irrespective of the configured maximum number of threads #40957
- The auto-configured reactiveNeo4jTransactionManager may cause a failure due to multiple TransactionManager beans #40953
- Application fails to start when server.tomcat.threads.max < 10 #40945
- SBOM actuator endpoint doesn't work in a native image #40939
- Starter parent applies its configuration of the CycloneDX Maven plugin too broadly #40927
- buildInfo does not work with Gradle 8.7 or later when the configuration cache is enabled #40924
- Prometheus Exemplars are missing from _count #40904
- Extract fails due to a duplicate entry when BOOT-INF/classes contains a directory that's also present in the root of the jar #40903
- sbom is not available to the actuator endpoint when using bootRun or bootWar #40890
- A newline character is missing from the start of the default banner #40889
📔 Documentation
- Fix links to Spring AMQP's javadoc #41144
- Document more precisely how a Container's Docker image name is used to find the matching service connection #41123
- Cross-link to the CDS how-to guide #41118
- Fix typos in javadoc of MockServerRestClientCustomizer and MockServerRestTemplateCustomizer #41065
- Improve readability when listing three pillars of observability #41064
- Add CDS training run configuration documentation #41045
- Document the need to switch to io.micrometer:micrometer-registry-prometheus-simpleclient to use the Prometheus push gateway #40993
- Improve consistency of documentation guidelines for packaging and running applications #40977
- Fix typos in method names and javadoc #40976
- Replace hard-coded links to Micrometer in documentation #40967
- Add Kotlin example for
@Testcontainers
#40943 - Fix various minor inconsistencies of the documentation #40942
- Warn in the documentation that spring.profiles.group can only be used in non-profile-specific documents #40941
- Broken Micrometer links in documentation #40916
- Document Buildpacks CDS and Spring AOT support #40762
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.17 #41066
- Upgrade to FreeMarker 2.3.33 #41067
- Upgrade to HSQLDB 2.7.3 #41068
- Upgrade to Infinispan 15.0.5.Final #41159
- Upgrade to Jaybird 5.0.5.java11 #41132
- Upgrade to Jersey 3.1.7 #41069
- Upgrade to Jetty 12.0.10 #41071
- Upgrade to Jetty Reactive HTTPClient 4.0.5 #41070
- Upgrade to jOOQ 3.19.10 #41133
- Upgrade to Maven Help Plugin 3.4.1 #41073
- Upgrade to Maven Jar Plugin 3.4.2 #41160
- Upgrade to Micrometer 1.13.1 #41030
- Upgrade to Micrometer Tracing 1.3.1 #41042
- Upgrade to MSSQL JDBC 12.6.2.jre11 #41074
- Upgrade to Neo4j Java Driver 5.21.0 #41043
- Upgrade to Netty 4.1.111.Final #41075
- Upgrade to Pulsar Reactive 0.5.6 #41134
- Upgrade to Reactor Bom 2023.0.7 #41031
- Upgrade to Spring AMQP 3.1.6 #41145
- Upgrade to Spring Authorization Server 1.3.1 #41032
- Upgrade to Spring Data Bom 2024.0.1 #41033
- Upgrade to Spring Framework 6.1.10 #41150
- Upgrade to Spring GraphQL 1.3.1 #41035
- Upgrade to Spring Integration 6.3.1 #41036
- Upgrade to Spring Kafka 3.2.1 #41037
- Upgrade to Spring LDAP 3.2.4 #41038
- Upgrade to Spring Pulsar 1.1.1 #41039
- Upgrade to Spring Security 6.3.1 #41040
- Upgrade to Spring Session 3.3.1 #41041
- Upgrade to Tomcat 10.1.25 #41161
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Eng-Fouad, @PiyalAhmed, @Seungpang, @asashour, @cmabdullah, @dependabot[bot], @donghoony, @erie0210, @izeye, @mateusscheper, @onobc, @quaff, @sdeleuze, and @vsanna
v3.2.7
🐞 Bug Fixes
- SQL Server JDBC URL is malformed after adding org.springframework.boot.jdbc.parameters label #41146
- Git instant properties cannot be coerced following git-commit-id Maven plugin upgrade #41109
- MongoHealthIndicator not compliant with Mongo stable API with strict setting #41101
- DataSourceProperties fail to bind if java.sql module isn't included #41082
- Image building requires builder to specify a stack #41046
- IllegalArgumentException when trying to use Tomcat's HttpNio2Protocol with Spring Boot-configured SSL #41007
- Uber jar fails to start when it contains a dependency with Multi-Release: true in its manifest and unexpected file entries in META-INF/versions #41001
- buildInfo does not work with Gradle 8.7 or later when the configuration cache is enabled #40911
- The auto-configured reactiveNeo4jTransactionManager may cause a failure due to multiple TransactionManager beans #40895
- Flyway auto-configuration does not work with Flyway 10 when using GraalVM #40821
- Image building hangs when builder and buildpack are configured #40697
- Spring Boot remote restart with devtools causes 'factory already defined' Tomcat error when running with 'java -jar' #39733
- JSP-related resources may not be found in an executable war file when using Jetty #39472
- Excluding status code from DefaultErrorAttributes throws NPE #30011
📔 Documentation
- Document more precisely how a Container's Docker image name is used to find the matching service connection #41111
- Fix typos in javadoc of MockServerRestClientCustomizer and MockServerRestTemplateCustomizer #41052
- Improve readability when listing three pillars of observability #41051
- Fix typos in method names and javadoc #40971
- Warn in the documentation that spring.profiles.group can only be used in non-profile-specific documents #40918
- Add Kotlin example for
@Testcontainers
#40905 - Fix various minor inconsistencies of the documentation #40900
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.17 #41054
- Upgrade to Dropwizard Metrics 4.2.26 #41055
- Upgrade to FreeMarker 2.3.33 #41056
- Upgrade to Hibernate 6.4.9.Final #41095
- Upgrade to HSQLDB 2.7.3 #41057
- Upgrade to Infinispan 14.0.29.Final #41096
- Upgrade to Jaybird 5.0.5.java11 #41127
- Upgrade to Jersey 3.1.7 #41058
- Upgrade to Jetty 12.0.10 #41060
- Upgrade to Jetty Reactive HTTPClient 4.0.5 #41059
- Upgrade to jOOQ 3.18.17 #41128
- Upgrade to Maven Help Plugin 3.4.1 #41062
- Upgrade to Micrometer 1.12.7 #41015
- Upgrade to Micrometer Tracing 1.2.7 #41027
- Upgrade to Neo4j Java Driver 5.21.0 #41028
- Upgrade to Netty 4.1.111.Final #41063
- Upgrade to Pulsar Reactive 0.5.6 #41129
- Upgrade to Reactor Bom 2023.0.7 #41016
- Upgrade to Spring AMQP 3.1.6 #41143
- Upgrade to Spring Authorization Server 1.2.5 #41017
- Upgrade to Spring Data Bom 2023.1.7 #41018
- Upgrade to Spring Framework 6.1.10 #41149
- Upgrade to Spring GraphQL 1.2.7 #41020
- Upgrade to Spring Integration 6.2.6 #41021
- Upgrade to Spring Kafka 3.1.6 #41022
- Upgrade to Spring LDAP 3.2.4 #41023
- Upgrade to Spring Pulsar 1.0.7 #41024
- Upgrade to Spring Security 6.2.5 #41025
- Upgrade to Spring Session 3.2.4 #41026
- Upgrade to Tomcat 10.1.25 #41158
❤️ Contributors
Thank you to all the contributors who worked on this release:
@MazizEsa, @PiyalAhmed, @asashour, @cmabdullah, @donghoony, @erie0210, @mateusscheper, @quaff, and @vsanna
v3.3.0
⭐ New Features
- Add support for descriptions of record components in configuration metadata generation #29403
🐞 Bug Fixes
- gradlew bootBuildImage fails with Podman on macOS Sonoma #40871
- Pulsar auth parameters don't properly encode JSON values #40869
- When using JPA and ImportTestcontainers, test context may fail to refresh due to "Mapped port can only be obtained after the container is started" #40863
- Default MIME mappings are not loaded unless additional mappings are configured #40860
- Starting from 3.2.x,
@SpyBean
is not able to initialise MongoRepository bean of the generic type #40855 - Auto-configuration ordering change breaks DocumentReference (in non-reactive MongoTemplate) when depending on mongodb-driver-reactivestreams #40851
- Neo4jReactiveDataAutoConfiguration creates incorrectly named bean #40836
- Image building fails during cleanup when bind mount has read-only content #40799
- Failure Analysis for InvalidConfigurationPropertyValueException is skipped when the property is not set #40691
- IllegalArgumentException can be thrown when running an uber jar on a shared drive #40643
- setReadTimeout can't be set via Reflective factory on JettyClientHttpRequestFactory #40638
- URISyntaxException is raised if the spring boot application is started in a location that contains invalid URI characters #40616
- resolveMainClassName fails when building with Gradle using Java 22 #40613
- AnsiOutput.detectIfAnsiCapable broken on JDK22 #40609
- Help information for spring init's build option has the wrong default #40606
- JarUrlConnection.getPermission() can throw NullPointerException if jarFileConnection is null #40599
- Whitespace is not correctly trimmed when generating configuration properties metadata from records #40593
- In some situations, the failure when the AOT-generated initializer cannot be loaded is less helpful than before #40584
- Properties binding eagerly creates superfluous maps #40561
- Configuring SSL bundle reload for non-file resource types causes errors that are difficult to diagnose #40560
- spring-boot-dependencies cannot be used with repositories that ban com.oracle.database.jdbc:ojdbc-bom #40535
- Buildpacks do not support Docker with containerd image store #40526
- SpringBootMockMvcBuilderCustomizer can crash cryptically while collecting data that it would have discarded anyway #40517
- Containers not shut down between tests when using .withReuse(true) but env. does not support reuse (e.g. CI builds) #40509
- CookieSameSiteSupplier influences session cookie #40501
<springProperty>
and<springProfile>
do not work in<include>
after Logback upgrade #40491- Runtime hint registration for property binding should not fail when parameter information is unavailable #40486
- ServiceLevelObjectiveBoundary properties cannot be bound in a native image application #40483
- server.error.include-binding-errors does not recognize MethodValidationResult exceptions #40474
- spring.data.redis.cluster.nodes and spring.data.redis.sentinel.nodes do not handle IPv6 addresses correctly #40467
- Using relative paths to describe the classpath in the error message from ResolveMainClassName hinders problem diagnosis #40465
- Jartools extract command doesn't extract all files from META-INF #40456
- Native image doesn't start and doesn't log anything if an environment post processor throws an exception #40451
- Unlike DataSourceAutoConfiguration, DevToolsDataSourceAutoConfiguration assumes that javax.sql.DataSource will always be available #40441
📔 Documentation
- Improve graceful shutdown documentation to remove ambiguity #40846
- Document ways to opt out from immutable
@ConfigurationProperties
binding with single constructor #40844 - Document that a custom HttpMessageConverters bean can be used to reorder json message converters when needed #40839
- Address ambiguity now that Testcontainers has two classes named KafkaContainer #40756
- Publish API documentation for Spring Boot's Kotlin APIs #40692
- Fix typo in features doc #40631
- Code inclusion in Jersey documentation is broken #40629
- Add How-To for ManagedClassNameFilter #40617
- Clarify devtools restart class loader #40608
- Document default value of management.zipkin.tracing.encoding #40588
- Note that spring-boot-docker-compose is excluded by default from packaged jars #40565
- Clarify docs around spring.jpa.generate-ddl #40523
- Clarify the directory that's used by default to find Docker Compose compose.yaml #40515
- Suggest testAndDevelopmentOnly configuration when using Docker Compose support in tests #40481
- Clarify that all named properties must match for
@ConditionalOnProperty
to match #40471 - Links to Spring Batch javadoc for EnableBatchProcessing and DefaultBatchConfiguration are broken #40141
- Add grpc starter and httpexchange starter to the community starters document #39437
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.16 #40879
- Upgrade to Cassandra Driver 4.18.1 #40842
- Upgrade to Couchbase Client 3.6.2 #40737
- Upgrade to Dependency Management Plugin 1.1.5 #40738
- Upgrade to Elasticsearch Client 8.13.4 #40739
- Upgrade to GraphQL Java 22.0 #40618
- Upgrade to Hibernate 6.5.2.Final #40867
- Upgrade to Infinispan 15.0.4.Final #40865
- Upgrade to Jackson Bom 2.17.1 #40742
- Upgrade to Jakarta XML SOAP 3.0.2 #40786
- Upgrade to Jakarta XML WS 4.0.2 #40787
- Upgrade to Jetty 12.0.9 #40743
- Upgrade to Jetty Reactive HTTPClient 4.0.4 #40811
- Upgrade to jOOQ 3.19.8 #40744
- Upgrade to Kotlin 1.9.24 #40745
- Upgrade to Kotlin Coroutines 1.8.1 #40746
- Upgrade to Maven Deploy Plugin 3.1.2 [#40747](#4...
v3.2.6
🐞 Bug Fixes
- Image building fails during cleanup when bind mount has read-only content #40760
- Failure Analysis for InvalidConfigurationPropertyValueException is skipped when the property is not set #40690
- setReadTimeout can't be set via Reflective factory on JettyClientHttpRequestFactory #40635
- URISyntaxException is raised if the spring boot application is started in a location that contains invalid URI characters #40615
- Help information for spring init's build option has the wrong default #40605
- When using JPA and ImportTestcontainers, test context may fail to refresh due to "Mapped port can only be obtained after the container is started" #40585
- IllegalArgumentException can be thrown when running an uber jar on a shared drive #40549
- spring-boot-dependencies cannot be used with repositories that ban com.oracle.database.jdbc:ojdbc-bom #40534
- SpringBootMockMvcBuilderCustomizer can crash cryptically while collecting data that it would have discarded anyway #40516
- Containers not shut down between tests when using .withReuse(true) but env. does not support reuse (e.g. CI builds) #40508
- Pulsar auth parameters don't properly encode JSON values #40493
- Runtime hint registration for property binding should not fail when parameter information is unavailable #40485
- ServiceLevelObjectiveBoundary properties cannot be bound in a native image application #40482
- spring.data.redis.cluster.nodes and spring.data.redis.sentinel.nodes do not handle IPv6 addresses correctly #40466
- Using relative paths to describe the classpath in the error message from ResolveMainClassName hinders problem diagnosis #40464
- Native image doesn't start and doesn't log anything if an environment post processor throws an exception #40450
- Unlike DataSourceAutoConfiguration, DevToolsDataSourceAutoConfiguration assumes that javax.sql.DataSource will always be available #40440
- Starting from 3.2.x,
@SpyBean
is not able to initialise MongoRepository bean of the generic type #40234 - AnsiOutput.detectIfAnsiCapable broken on JDK22 #40172
- Buildpacks do not support Docker with containerd image store #40100
- resolveMainClassName fails when building with Gradle using Java 22 #40074
- server.error.include-binding-errors does not recognize MethodValidationResult exceptions #39865
- JarUrlConnection.getPermission() can throw NullPointerException if jarFileConnection is null #39856
- gradlew bootBuildImage fails with Podman on macOS Sonoma #39830
- CookieSameSiteSupplier influences session cookie #39766
- Auto-configuration ordering change breaks DocumentReference (in non-reactive MongoTemplate) when depending on mongodb-driver-reactivestreams #39405
- Properties binding eagerly creates superfluous maps #39375
- Configuring SSL bundle reload for non-file resource types causes errors that are difficult to diagnose #38903
- In some situations, the failure when the AOT-generated initializer cannot be loaded is less helpful than before #38645
📔 Documentation
- Improve graceful shutdown documentation to remove ambiguity #40845
- Document ways to opt out from immutable
@ConfigurationProperties
binding with single constructor #40843 - Document that a custom HttpMessageConverters bean can be used to reorder json message converters when needed #40838
- Address ambiguity now that Testcontainers has two classes named KafkaContainer #40699
- Clarify devtools restart class loader #40607
- Note that spring-boot-docker-compose is excluded by default from packaged jars #40564
- Clarify docs around spring.jpa.generate-ddl #40522
- Clarify the directory that's used by default to find Docker Compose compose.yaml #40514
- Clarify that all named properties must match for
@ConditionalOnProperty
to match #40470 - Links to Spring Batch javadoc for EnableBatchProcessing and DefaultBatchConfiguration are broken #40468
- Suggest testAndDevelopmentOnly configuration when using Docker Compose support in tests #40171
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.16 #40877
- Upgrade to Dependency Management Plugin 1.1.5 #40721
- Upgrade to Hibernate 6.4.8.Final #40722
- Upgrade to Infinispan 14.0.28.Final #40723
- Upgrade to Jakarta XML SOAP 3.0.2 #40781
- Upgrade to Jakarta XML WS 4.0.2 #40782
- Upgrade to Jetty 12.0.9 #40724
- Upgrade to Jetty Reactive HTTPClient 4.0.4 #40809
- Upgrade to jOOQ 3.18.15 #40725
- Upgrade to Kotlin 1.9.24 #40726
- Upgrade to Maven Deploy Plugin 3.1.2 #40727
- Upgrade to Maven Install Plugin 3.1.2 #40728
- Upgrade to Maven Shade Plugin 3.5.3 #40729
- Upgrade to Micrometer 1.12.6 #40655
- Upgrade to Micrometer Tracing 1.2.6 #40730
- Upgrade to Neo4j Java Driver 5.20.0 #40665
- Upgrade to Netty 4.1.110.Final #40878
- Upgrade to Pooled JMS 3.1.6 #40731
- Upgrade to Pulsar Reactive 0.5.5 #40810
- Upgrade to R2DBC Proxy 1.1.5.RELEASE #40732
- Upgrade to Reactor Bom 2023.0.6 #40656
- Upgrade to SAAJ Impl 3.0.4 #40783
- Upgrade to Spring AMQP 3.1.5 #40827
- Upgrade to Spring Batch 5.1.2 #40657
- Upgrade to Spring Data Bom 2023.1.6 #40658
- Upgrade to Spring Framework 6.1.8 #40828
- Upgrade to Spring Integration 6.2.5 #40660
- Upgrade to Spring Kafka 3.1.5 #40661
- Upgrade to Spring Pulsar 1.0.6 #40662
- Upgrade to Spring Retry 2.0.6 #40784
- Upgrade to Spring Session 3.2.3 #40663
- Upgrade to Spring WS 4.0.11 #40664
- Upgrade to Testcontainers 1.19.8 #40733
- U...
v3.1.12
🐞 Bug Fixes
- Help information for spring init's build option has the wrong default #40603
- SpringBootMockMvcBuilderCustomizer can crash cryptically while collecting data that it would have discarded anyway #40500
- ServiceLevelObjectiveBoundary properties cannot be bound in a native image application #40480
- Using relative paths to describe the classpath in the error message from ResolveMainClassName hinders problem diagnosis #40463
- Unlike DataSourceAutoConfiguration, DevToolsDataSourceAutoConfiguration assumes that javax.sql.DataSource will always be available #40434
- Native image doesn't start and doesn't log anything if an environment post processor throws an exception #40429
- Runtime hint registration for property binding should not fail when parameter information is unavailable #40051
- spring-boot-dependencies cannot be used with repositories that ban com.oracle.database.jdbc:ojdbc-bom #39945
- spring.data.redis.cluster.nodes and spring.data.redis.sentinel.nodes do not handle IPv6 addresses correctly #39819
- Containers not shut down between tests when using .withReuse(true) but env. does not support reuse (e.g. CI builds) #39609
- Failure Analysis for InvalidConfigurationPropertyValueException is skipped when the property is not set #33261
📔 Documentation
- Document that a custom HttpMessageConverters bean can be used to reorder json message converters when needed #40767
- Clarify devtools restart class loader #40604
- Note that spring-boot-docker-compose is excluded by default from packaged jars #40556
- Clarify the directory that's used by default to find Docker Compose compose.yaml #40512
- Clarify docs around spring.jpa.generate-ddl #40503
- Clarify that all named properties must match for
@ConditionalOnProperty
to match #40110 - Improve graceful shutdown documentation to remove ambiguity #40108
- Document ways to opt out from immutable
@ConfigurationProperties
binding with single constructor #34820
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.16 #40875
- Upgrade to Dependency Management Plugin 1.1.5 #40709
- Upgrade to Hibernate 6.2.25.Final #40710
- Upgrade to Infinispan 14.0.28.Final #40711
- Upgrade to Jakarta XML SOAP 3.0.2 #40776
- Upgrade to Jakarta XML WS 4.0.2 #40777
- Upgrade to Jetty 11.0.21 #40778
- Upgrade to Jetty Reactive HTTPClient 3.0.13 #40807
- Upgrade to jOOQ 3.18.15 #40712
- Upgrade to Maven Deploy Plugin 3.1.2 #40713
- Upgrade to Maven Install Plugin 3.1.2 #40714
- Upgrade to Micrometer 1.11.12 #40646
- Upgrade to Micrometer Tracing 1.1.13 #40715
- Upgrade to Neo4j Java Driver 5.20.0 #40654
- Upgrade to Netty 4.1.110.Final #40876
- Upgrade to Pooled JMS 3.1.6 #40716
- Upgrade to R2DBC Proxy 1.1.5.RELEASE #40717
- Upgrade to Reactor Bom 2022.0.19 #40647
- Upgrade to SAAJ Impl 3.0.4 #40779
- Upgrade to Spring AMQP 3.0.14 #40824
- Upgrade to Spring Batch 5.0.6 #40648
- Upgrade to Spring Data Bom 2023.0.12 #40649
- Upgrade to Spring Framework 6.0.21 #40825
- Upgrade to Spring Integration 6.1.9 #40826
- Upgrade to Spring Kafka 3.0.17 #40651
- Upgrade to Spring Retry 2.0.6 #40808
- Upgrade to Spring Session 3.1.6 #40652
- Upgrade to Spring WS 4.0.11 #40653
- Upgrade to Tomcat 10.1.24 #40780
- Upgrade to Undertow 2.3.13.Final #40719
❤️ Contributors
Thank you to all the contributors who worked on this release:
@PiyalAhmed, @chaewss, @coursar, @dependabot[bot], @dsyer, @dukbong, @izeye, @quaff, @snicoll, and @tobi-laa
v3.3.0-RC1
⭐ New Features
- Add configuration key spring.rabbitmq.template.allowed-list-patterns #40421
- Add spring.graphql.websocket.keep-alive property #40320
- Add Spring Pulsar transaction support #40189
- Make it harder to misconfigure logging.threshold.console in yaml #40124
- Make configuration properties for Pulsar failover more concise #40077
- Add support for Prometheus Client 1.x and simpleclient #40023
- Delay interaction with Lazy CqlSession bean until first required usage #39948
- Add property spring.data.jdbc.dialect #39941
- Make spring-test available to compile classpath of consumers of spring-boot-test #39901
- Exclude infrastructure beans from lazy initialization when lazy-initialization=true #39831
- Configure JpaBaseConfiguration with custom ManagedClassNameFilter #39813
- Add property to ignore running Docker Compose services #39749
- Add configuration property to disable long timers in Micrometer Observations #39618
- Upgrade Cassandra driver to 4.18.0 and change coordinates from com.datastax.oss to org.apache.cassandra #39090
- Add more gap between the orders of CloudFoundryVcapEnvironmentPostProcessor and ConfigDataEnvironmentPostProcessor #38684
- Deprecate
@ServletEndpoint
,@ControllerEndpoint
and@RestControllerEndpoint
#31768 - Add SNI support to embedded web server SSL auto-configuration #26022
🐞 Bug Fixes
- Executable JAR application startup is slower after 3.2.0 when Hibernate scanner is not disabled #40381
- NoClassDefFoundError can be thrown from LaunchedClassLoader when threads are interrupted #40379
- BindValidationFailureAnalyzer uses wrong target #40365
- Log4j2LoggingSystem pollutes Log4j2's environment with a SpringEnvironmentPropertySource that is never removed #40327
- When using Maven, configuring the spring-boot.excludes or spring-boot-includes user properties causes the build to fail with "Cannot find default setter" #40324
@ServletComponentScan
does not register servlet components in a mock web environment #40322- Loading of custom deny-all filter can cause a StackOverflowError when deploying to Tomcat with Log4j2 configured to use a single JVM-wide logger context #40313
- Jetty support doesn't set virtual thread name #40169
- Maven uses 'start-class' when the parent POM is being used and ignores 'spring-boot.run.main-class' #40145
- PropertiesLdapConnectionDetails should not be public #40081
- spring.datasource.dbcp2.username and spring.datasource.dbcp2.password are incorrectly marked as deprecated #40076
- spring-boot-dependencies should not manage org.flywaydb:flyway-community-db-support as it is not released as part of Flyway #40073
- Spring Config does not use environment conversion service on resolved properties #39944
📔 Documentation
- Producible's javadoc has the wrong link text for
@WriteOperation
and@DeleteOperation
#40387 - Add reference to OpenTelemetry Spring Boot starter #40339
- Refine Efficient Deployments section in the reference guide #40175
- Clarify requirements for -parameters and constructor binding #40164
- Ensure Reference Guides breadcrumb in page headers is hyperlinked #40135
- Document new tools mode #40094
- Add reference to Nostr Spring Boot Starter #40080
- Replace links to code with links to javadoc #40065
- Document CDS support #40061
- Document SBOM Support #40059
- Fix forward-headers-strategy documentation regarding cloud defaults #40054
- Pull the whole "Testing" documentation section up to the top level #38361
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.2 #40399
- Upgrade to Artemis 2.33.0 #40082
- Upgrade to AspectJ 1.9.22 #40239
- Upgrade to Awaitility 4.2.1 #40331
- Upgrade to Brave 6.0.3 #40332
- Upgrade to Byte Buddy 1.14.13 #40240
- Upgrade to Couchbase Client 3.6.1 #40241
- Upgrade to CycloneDX Maven Plugin 2.8.0 #40242
- Upgrade to Elasticsearch Client 8.13.2 #40333
- Upgrade to GraphQL Java 21.5 #40244
- Upgrade to Groovy 4.0.21 #40245
- Upgrade to Hazelcast 5.4.0 #40400
- Upgrade to Hibernate 6.5.0.CR2 #40378
- Upgrade to Infinispan 15.0.1.Final #40334
- Upgrade to Jakarta Json Bind 3.0.1 #40248
- Upgrade to Jersey 3.1.6 #40249
- Upgrade to Jetty 12.0.8 #40250
- Upgrade to jOOQ 3.19.7 #40251
- Upgrade to Json-smart 2.5.1 #40252
- Upgrade to Liquibase 4.27.0 #40253
- Upgrade to Logback 1.5.6 #40401
- Upgrade to Lombok 1.18.32 #40254
- Upgrade to Maven Invoker Plugin 3.6.1 #40255
- Upgrade to Maven Jar Plugin 3.4.0 #40402
- Upgrade to Maven Source Plugin 3.3.1 #40256
- Upgrade to Micrometer 1.13.0-RC1 #40257
- Upgrade to Micrometer Tracing 1.3.0-RC1 #40258
- Upgrade to MongoDB 5.0.1 #40259
- Upgrade to Neo4j Java Driver 5.19.0 #40232
- Upgrade to Netty 4.1.109.Final #40403
- Upgrade to OpenTelemetry 1.37.0 #40261
- Upgrade to Pulsar 3.2.2 #40262
- Upgrade to Pulsar Reactive 0.5.4 #40404
- Upgrade to R2DBC MySQL 1.1.3 #40263
- Upgrade to R2DBC Postgresql 1.0.5.RELEASE #40335
- Upgrade to Rabbit AMQP Client 5.21.0 #40264
- Upgrade to Reactor Bom 2023.0.5...
v3.2.5
🐞 Bug Fixes
- BindValidationFailureAnalyzer uses wrong target #40364
- Log4j2LoggingSystem pollutes Log4j2's environment with a SpringEnvironmentPropertySource that is never removed #40326
- When using Maven, configuring the spring-boot.excludes or spring-boot-includes user properties causes the build to fail with "Cannot find default setter" #40323
@ServletComponentScan
does not register servlet components in a mock web environment #40321- Loading of custom deny-all filter can cause a StackOverflowError when deploying to Tomcat with Log4j2 configured to use a single JVM-wide logger context #40312
- Jetty support doesn't set virtual thread name #40152
- Executable JAR application startup is slower after 3.2.0 when Hibernate scanner is not disabled #40125
- NoClassDefFoundError can be thrown from LaunchedClassLoader when threads are interrupted #40096
📔 Documentation
- Producible's javadoc has the wrong link text for
@WriteOperation
and@DeleteOperation
#40386 - Clarify requirements for -parameters and constructor binding #40157
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.18.4 #40394
- Upgrade to AspectJ 1.9.22 #40293
- Upgrade to Awaitility 4.2.1 #40294
- Upgrade to Byte Buddy 1.14.13 #40295
- Upgrade to Groovy 4.0.21 #40296
- Upgrade to Hazelcast 5.3.7 #40297
- Upgrade to Jakarta Json Bind 3.0.1 #40298
- Upgrade to Jersey 3.1.6 #40299
- Upgrade to Jetty 12.0.8 #40300
- Upgrade to jOOQ 3.18.14 #40301
- Upgrade to Json-smart 2.5.1 #40302
- Upgrade to Kafka 3.6.2 #40303
- Upgrade to Lombok 1.18.32 #40304
- Upgrade to Maven Invoker Plugin 3.6.1 #40305
- Upgrade to Maven Source Plugin 3.3.1 #40306
- Upgrade to Micrometer 1.12.5 #40207
- Upgrade to Micrometer Tracing 1.2.5 #40208
- Upgrade to MongoDB 4.11.2 #40307
- Upgrade to Neo4j Java Driver 5.19.0 #40218
- Upgrade to Netty 4.1.109.Final #40395
- Upgrade to Pulsar Reactive 0.5.4 #40396
- Upgrade to R2DBC Postgresql 1.0.5.RELEASE #40309
- Upgrade to Reactor Bom 2023.0.5 #40209
- Upgrade to SLF4J 2.0.13 #40397
- Upgrade to Spring AMQP 3.1.4 #40210
- Upgrade to Spring Authorization Server 1.2.4 #40211
- Upgrade to Spring Data Bom 2023.1.5 #40212
- Upgrade to Spring Framework 6.1.6 #40213
- Upgrade to Spring GraphQL 1.2.6 #40310
- Upgrade to Spring HATEOAS 2.2.2 #40376
- Upgrade to Spring Integration 6.2.4 #40214
- Upgrade to Spring Kafka 3.1.4 #40377
- Upgrade to Spring LDAP 3.2.3 #40215
- Upgrade to Spring Pulsar 1.0.5 #40216
- Upgrade to Spring Security 6.2.4 #40217
- Upgrade to Tomcat 10.1.20 #40311
❤️ Contributors
Thank you to all the contributors who worked on this release:
@FelixDes, @dependabot[bot], @izeye, @mstahv, @ppkarwasz, @snicoll, and @spencergibb
v3.1.11
🐞 Bug Fixes
- ClientObservationConventionAdapter overwrites WebClient request attributes #40330
- Loading of custom deny-all filter can cause a StackOverflowError when deploying to Tomcat with Log4j2 configured to use a single JVM-wide logger context #40235
- Log4j2LoggingSystem pollutes Log4j2's environment with a SpringEnvironmentPropertySource that is never removed #40178
- BindValidationFailureAnalyzer uses wrong target #40035
- When using Maven, configuring the spring-boot.excludes or spring-boot-includes user properties causes the build to fail with "Cannot find default setter" #39837
@ServletComponentScan
does not register servlet components in a mock web environment #39736
📔 Documentation
- Producible's javadoc has the wrong link text for
@WriteOperation
and@DeleteOperation
#40385
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.18.4 #40388
- Upgrade to AspectJ 1.9.22 #40279
- Upgrade to Byte Buddy 1.14.13 #40280
- Upgrade to Groovy 4.0.21 #40281
- Upgrade to Hibernate 6.2.24.Final #40282
- Upgrade to Jakarta Json Bind 3.0.1 #40283
- Upgrade to Jersey 3.1.6 #40284
- Upgrade to jOOQ 3.18.14 #40285
- Upgrade to Lombok 1.18.32 #40286
- Upgrade to Micrometer 1.11.11 #40196
- Upgrade to Micrometer Tracing 1.1.12 #40197
- Upgrade to Neo4j Java Driver 5.19.0 #40205
- Upgrade to Netty 4.1.109.Final #40389
- Upgrade to R2DBC Postgresql 1.0.5.RELEASE #40390
- Upgrade to Reactor Bom 2022.0.18 #40198
- Upgrade to SLF4J 2.0.13 #40391
- Upgrade to Spring AMQP 3.0.13 #40373
- Upgrade to Spring Authorization Server 1.1.7 #40199
- Upgrade to Spring Data Bom 2023.0.11 #40200
- Upgrade to Spring Framework 6.0.19 #40201
- Upgrade to Spring GraphQL 1.2.6 #40288
- Upgrade to Spring HATEOAS 2.1.5 #40374
- Upgrade to Spring Integration 6.1.8 #40202
- Upgrade to Spring Kafka 3.0.16 #40375
- Upgrade to Spring LDAP 3.1.5 #40203
- Upgrade to Spring Security 6.1.9 #40204
- Upgrade to Tomcat 10.1.20 #40289
❤️ Contributors
Thank you to all the contributors who worked on this release:
@FelixDes, @dependabot[bot], @izeye, @mstahv, @ppkarwasz, and @spencergibb
v3.3.0-M3
⭐ New Features
- Add public getUndertow method to UndertowWebServer #39916
- Add TWENTY_TWO to JavaVersion enum #39827
- Implement SBOM actuator endpoint #39799
- Use optimized request predicates for GraphQL MVC and WebFlux endpoints #39652
- Auto-configure SSE transport on GraphQL MVC and WebFlux endpoints #39651
- Manage jakarta.inject:jakarta.inject-api #39587
- Improve exploded structure experience for efficient deployments #38276
- Support loading of base 64 encoded values from the Environment #36033
- Support mvn spring-boot:run with classpaths that exceeds Windows' length limits #17766
🐞 Bug Fixes
- Thread name prefix is not always set when using virtual threads #39961
- spring-boot-maven-plugin doesn't work with Java 22 #39934
- Jetty embedded web server includes a JNDI initial context when other servers do not #39932
- Remove virtual thread support for Undertow as it leaks memory #39812
- When using Logback, log messages appear in a single line when application name contains brackets #39802
- Resolving a BuildpackReference created from a URL-like String can fail on Windows #39794
- SpringProfile arbiter fails without a Spring's environment #39787
- bootStartScripts tasks should be an instance of org.gradle.api.tasks.application.CreateStartScripts rather than its superclass org.gradle.jvm.application.tasks.CreateStartScripts #39765
📔 Documentation
- Document support for Java 22 #40047
- Fix web session javadoc typo #39954
- Fix typo in Custom HTTP Exchange Recording section #39785
- Make description of virtual threads and JVM exit easier to understand by removing "no-non" double-negative #39738
- Switch to Antora Based Documentation #33766
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.0 #40014
- Upgrade to Angus Mail 2.0.3 #39991
- Upgrade to Brave 6.0.2 #39992
- Upgrade to Commons DBCP2 2.12.0 #39918
- Upgrade to Couchbase Client 3.6.0 #39951
- Upgrade to Elasticsearch Client 8.12.2 #39919
- Upgrade to Flyway 10.10 #40022
- Upgrade to Git Commit ID Maven Plugin 8.0.2 #40015
- Upgrade to Glassfish JAXB 4.0.5 #39993
- Upgrade to GraphQL Java 21.4 #40016
- Upgrade to Groovy 4.0.20 #39994
- Upgrade to Infinispan 15.0.0.Final #40017
- Upgrade to Jackson Bom 2.17.0 #39920
- Upgrade to Jakarta Activation 2.1.3 #39996
- Upgrade to Jakarta Mail 2.1.3 #39997
- Upgrade to Jakarta XML Bind 4.0.2 #39998
- Upgrade to Jaybird 5.0.4.java11 #39999
- Upgrade to Jetty 12.0.7 #40000
- Upgrade to jOOQ 3.19.6 #40001
- Upgrade to Kafka 3.7.0 #39952
- Upgrade to Kotlin 1.9.23 #40002
- Upgrade to Lettuce 6.3.2.RELEASE #40003
- Upgrade to Log4j2 2.23.1 #40004
- Upgrade to Maven Assembly Plugin 3.7.1 #40018
- Upgrade to Maven Compiler Plugin 3.13.0 #40019
- Upgrade to Micrometer 1.13.0-M2 #39889
- Upgrade to Micrometer Tracing 1.3.0-M2 #39890
- Upgrade to Mockito 5.11.0 #39922
- Upgrade to Neo4j Java Driver 5.18.0 #39933
- Upgrade to OpenTelemetry 1.36.0 #39923
- Upgrade to Postgresql 42.7.3 #40005
- Upgrade to Pulsar 3.2.1 #40006
- Upgrade to R2DBC MariaDB 1.2.0 #39925
- Upgrade to R2DBC MySQL 1.1.2 #40007
- Upgrade to Reactor Bom 2023.0.4 #39908
- Upgrade to Spring AMQP 3.1.3 #39891
- Upgrade to Spring Authorization Server 1.3.0-M3 #39892
- Upgrade to Spring Data Bom 2024.0.0-M2 #39893
- Upgrade to Spring Framework 6.1.5 #39894
- Upgrade to Spring HATEOAS 2.3.0-M1 #39953
- Upgrade to Spring Integration 6.3.0-M2 #39896
- Upgrade to Spring Kafka 3.2.0-M2 #39897
- Upgrade to Spring Pulsar 1.1.0-M2 #39898
- Upgrade to Spring Security 6.3.0-M3 #39899
- Upgrade to Spring Session 3.3.0-M3 #39900
- Upgrade to SQLite JDBC 3.45.2.0 #40008
- Upgrade to Testcontainers 1.19.7 #40009
- Upgrade to WebJars Locator Core 0.58 #39926
❤️ Contributors
Thank you to all the contributors who worked on this release:
@MazizEsa, @PiyalAhmed, @Roiocam, @TheSnoozer, @dreis2211, @eddumelendez, @izeye, @mattrpav, @mhalbritter, @onobc, @snicoll, @timgrohmann, and @wanger26
v3.2.4
⭐ New Features
- Add TWENTY_TWO to JavaVersion enum #39825
🐞 Bug Fixes
- Thread name prefix is not always set when using virtual threads #39958
- spring-boot-maven-plugin doesn't work with Java 22 #39927
- Resolving a BuildpackReference created from a URL-like String can fail on Windows #39793
- SpringProfile arbiter fails without a Spring's environment #39786
- bootStartScripts tasks should be an instance of org.gradle.api.tasks.application.CreateStartScripts rather than its superclass org.gradle.jvm.application.tasks.CreateStartScripts #39764
- When using Logback, log messages appear in a single line when application name contains brackets #39564
📔 Documentation
- Document support for Java 22 #40046
- Fix web session javadoc typo #39821
- Fix typo in Custom HTTP Exchange Recording section #39784
- Make description of virtual threads and JVM exit easier to understand by removing "no-non" double-negative #39732
🔨 Dependency Upgrades
- Upgrade to Angus Mail 2.0.3 #39973
- Upgrade to Glassfish JAXB 4.0.5 #39975
- Upgrade to GraphQL Java 21.4 #40021
- Upgrade to Groovy 4.0.20 #39976
- Upgrade to Infinispan 14.0.27.Final #40026
- Upgrade to Jakarta Activation 2.1.3 #39978
- Upgrade to Jakarta Mail 2.1.3 #39979
- Upgrade to Jakarta XML Bind 4.0.2 #39980
- Upgrade to Jaybird 5.0.4.java11 #39981
- Upgrade to Jetty 12.0.7 #39982
- Upgrade to jOOQ 3.18.13 #39983
- Upgrade to Kotlin 1.9.23 #39984
- Upgrade to Lettuce 6.3.2.RELEASE #39985
- Upgrade to Micrometer 1.12.4 #39879
- Upgrade to Micrometer Tracing 1.2.4 #39880
- Upgrade to Neo4j Java Driver 5.18.0 #39936
- Upgrade to Postgresql 42.6.2 #39986
- Upgrade to Pulsar 3.1.3 #39987
- Upgrade to Reactor Bom 2023.0.4 #39907
- Upgrade to Spring AMQP 3.1.3 #39881
- Upgrade to Spring Authorization Server 1.2.3 #39915
- Upgrade to Spring Data Bom 2023.1.4 #39882
- Upgrade to Spring Framework 6.1.5 #39883
- Upgrade to Spring HATEOAS 2.2.1 #39950
- Upgrade to Spring Integration 6.2.3 #39884
- Upgrade to Spring Kafka 3.1.3 #39885
- Upgrade to Spring Pulsar 1.0.4 #39886
- Upgrade to Spring Security 6.2.3 #39887
- Upgrade to Spring Session 3.2.2 #39888
- Upgrade to Testcontainers 1.19.7 #39988
❤️ Contributors
Thank you to all the contributors who worked on this release:
@MazizEsa, @PiyalAhmed, @Roiocam, @dreis2211, @onobc, @snicoll, and @timgrohmann