Releases: spring-projects/spring-framework
v7.0.0-RC3
β New Features
- Deprecate the BeanShell scripting support #35720
 - Deprecate the 
langXML namespace #35719 - Deprecate Hamcrest methods in WebTestClient #35703
 - Remove Hamcrest dependency from RestTestClient #35702
 - AssertJ support for RestTestClient #35701
 - Use test-method scoped 
ExtensionContextin theSpringExtension#35697 - Remove support for callable references in 
BeanRegistrarDsl#35694 - Make Protobuf support extensible for gRPC #35403
 - Fix CRaC potential hangup after restoring #34372
 
π Bug Fixes
- Add support for Spring AOT with 
BeanRegistrarfor attributeAutoProxyUtils.originalTargetClass#35645 SingletonSupplieris not singleton ifnullis returned on first supplier call #35380
π Documentation
- Remove outdated Portlet mentions #35726
 - Move the "Groovy Bean Definition DSL" section to the Groovy page #35721
 - Remove outdated Spring version mentions #35696
 - Document automatic context propagation #35689
 - Refine documentation of 
BeanRegistrarDslwithRouterFunctionDsl#35549 
π¨ Dependency Upgrades
- Upgrade to Kotlin 2.2.21 #35714
 
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@YaSuenag, @dmitrysulman, and @nosan
v7.0.0-RC2
β New Features
- Early support for Jakarta Servlet 6.2 and Jakarta Activation 2.2 #35670
 - Prevent compilation error with 
WebTestClientwithout Hamcrest #35666 - Derive StatelessSession from transactional Session on Hibernate 7.2 #35664
 - Consistent support for JPA 3.2 transaction timeouts #35663
 - Add support for EntityManagerFactory bootstrapping from JPA 3.2 PersistenceConfiguration #35662
 
π Bug Fixes
- JdkClientHttpRequestFactory does not clean response headers when decompressing #35668
 - Make HttpStatus.resolve return non-deprecated one #35659
 - Reflection hints missing for SpringPersistenceUnitInfo.setPersistenceProviderPackageName #35655
 - Fix 
@Importwith multiple bean registrars #35653 
π Documentation
- Declare Servlet mock classes with Servlet 6.1 baseline #35671
 - Fix code snippets in Javadoc for 
exchangeSuccessfully()#35642 - Improve RestTemplate to RestClient migration guide #35620
 
π¨ Dependency Upgrades
- Downgrade JSONassert to 1.5.x #34901
 - Fix Jetty multipart client support with Java 25 #35531
 - Upgrade to Jackson 3.0.1 #35677
 
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@donalmurtagh, @kamilkrzywanski, @malczuuu, @vpavic, and @wakingrufus
v7.0.0-RC1
β New Features
- Align default order between 
@EnableAsyncand@EnableResilientMethods#35643 - Add first class 
ParameterizedTypeReferencesupport toBeanRegistrar#35635 - Support for JTA 2.1 read-only attribute #35633
 - UriComponentsBuilder#query should not clear queryParams if null passed in #35629
 - Revise 
PersistenceUnitInfomanagement for compatibility with JPA 3.2 as well as JPA 4.0 #35622 - Deprecate 
TransactionCallbackWithoutResult#35606 - Introduce 
queryParamPredicateinAbstractRequestLoggingFilter#35603 - Add builder-based constructors to Jackson 3 infrastructure #35597
 - Refine 
StringUtils#splitArrayElementsIntoPropertiesnullability #35595 - Support matching against exception causes in 
ExceptionTypeFilter#35592 - Match against exception causes in 
@RetryableandRetryPolicy#35583 - Improve configuration of HttpMessageConverters in RestClient and RestTestClient #35578
 - Support Bean Overrides for non-singletons #35574
 - Introduce 
findAnnotatedBeans(ListableBeanFactory)inControllerAdviceBean#35571 - Support explicitly specifying "no version" on a request #35566
 - Simplify overriding of default codec for Jackson 3 vs 2 #35562
 - Revise nullability of 
TransactionCallback,TransactionOperations, andTransactionalOperator#35561 - Refine 
SingletonSupplier<T>supplier-based static methods nullability #35559 - Add Kotlin extensions for RestTestClient #35558
 - Deprecation warning with GraalVM 25 due to 
--install-exit-handlers#35557 - Introduce 
MapAccessorin SpEL and deprecate existing implementation inspring-context#35537 - Add 
serialVersionUIDinLinkedCaseInsensitiveMap#35535 - Use uppercase for classpath-related static final field names #35525
 - Prevent empty declaration of 
@ConcurrencyLimit#35523 - Nullability fixes for AtomicReference #35514
 - Enhance toString method in SockJsFrame #35510
 - Invoke ConfigurationBeanNameGenerator even if a '
@Bean(name = ..)' is provided #35505 - Add support for recording and reusing the outcome of classpath scanning #35497
 - Upgrade to NullAway 0.12.10 and refine nullability #35492
 - Introduce automatic context propagation in 
CoroutinesUtils#invokeSuspendingFunction#35485 - Missing Nullable on body parameter in HttpClientErrorException.create methods. #35482
 - Introduce placeholder resolution support in 
@ConcurrencyLimit#35470 - Refine 
PropagationContextElement#35469 - Refine 
EntityManagerRuntimeHintsfor Hibernate 7.1+ #35462 - Provide programmatic alternative to 
@ConcurrencyLimit#35460 - Add caching to default JMS destination resolver #35456
 - Deprecate the org.springframework.web.servlet.view.document package #35451
 - Support injecting the API version into a controller method #35424
 - Provide access to raw content in RestTestClient #35399
 - Reject effectively private handler methods on CGLIB proxied controllers #35352
 - Use EmbeddedValueResolver to resolve value in MvcUriComponentsBuilder #35348
 - Upgrade to JUnit 6 #35124
 - Add 
ParameterizedTypeReferenceoverload next toBeanFactory.getBeanProvider(ResolvableType)#31444 - Provide GSON-based Encoder/Decoder #27131
 
π Bug Fixes
ReactorResourceFactoryis not restarted properly whenApplicationContextis resumed by TestContext Framework #35585AbstractJacksonEncoderignoresFILTER_PROVIDER_HINTwhen encodingFlux<T>#35575- HttpMessageConverters overrides custom string converter #35563
 - Reinstantiate checks for 
kotlin-reflect#35511 
π Documentation
- Remove outdated reference to JSR 305 in the reference documentation #35580
 - Update Javadoc related to use of ApiVersionInserter to show examples #35565
 - Update references to HTTP service client in the documentation #35522
 - Update docs to replace use of "X-API-Version" as an example #35494
 - Document placeholder and Ant-style pattern support for 
@ComponentScan#35491 
π¨ Dependency Upgrades
- Upgrade to Jackson 3.0.0 #35521
 - Upgrade to Micrometer 1.16.0-RC1 #35639
 - Upgrade to Reactor 2025.0.0-RC1 #35637
 
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Allan-QLB, @HyunSangHan, @NeatGuyCoding, @Rockernun, @Wars, @YongGoose, @chemicL, @hosea, @msridhar, @polyglot-k, @quaff, and @sic2
v6.2.12
β New Features
- Add "forEachByte" variant to DataBuffer for efficient traversing #35623
 - Nested transaction support via savepoints is broken in HSQLDB database [followup] #35618
 - Improve exception handling in 
ConfigurationClassBeanDefinitionReader#35631 - Add MySQL/MariaDB to TableMetaDataProviderFactory for correct generated-keys support #35593
 - Optimize state management in StompSubProtocolHandler #35591
 - ServletServerHttpRequest.getRemoteAddress() may perform DNS lookup #35589
 - Emit log message when multiple primary beans are detected #35550
 - Duplicate key error is mapped to 
TransientDataAccessExceptionbySQLStateSQLExceptionTranslatorforBatchUpdateException#35547 - Remove redundant object allocation in cglib proxy method calls #35543
 - Remove deprecation on 
CandidateComponentsIndexandCandidateComponentsIndexLoader#35472 - Processing response with no Content-Length header and no body raises EOFException #35361
 
π Bug Fixes
- DefaultListableBeanFactory::getBeanNamesForType does not always return all bean names #35634
 - Consider defaultCandidate for scoped proxies #35627
 - Release data buffer in AbstractCharSequenceDecoder even when String creation fails #35625
 - PathMatchingResourcePatternResolver is not able to resolve file in SpringBoot Packaged JAR #35617
 - Prevent NoClassDefFoundError when Jetty Reactive HttpClient is not available #35608
 - Performance regression with Property Placeholder Resolution #35594
 - Retain order of 
producesmedia types in@ExceptionHandler#35587 - Nested transaction support via savepoints is broken in HSQLDB database #35564
 - SpEL expression parser uses more CPU after upgrade to 6.2.9 #35556
 - Thread race during FactoryBean instantiations starting with 6.2 due to lenient locks #35545
 - Update parsed path handling in UrlHandlerFilter #35538
 - ResourceHttpMessageWriter.write has unexpected error handling for invalid range requests (offset > content length) #35536
 AbstractTestNGSpringContextTestsis not thread-safe regarding tracked exceptions #35528- UrlHandlerFilter breaks RequestDispatcher.forward() on Tomcat #35509
 - AbstractMockHttpServletRequestBuilder#buildRequest is not idempotent #35493
 - Add support for 
JvmDefault(default in Kotlin 2.2.20+) #35487 - InstanceSupplierCodeGenerator fails to detect deprecated type on package private factory method #35486
 - Fix synchronization in ResponseBodyEmitter #35466
 - useCaches option in PathMatchingResourcePatternResolver not applied in special case #35465
 - Deadlock during context initialization due to EntityManager lock #35398
 
π Documentation
- Improve guidance in WebFlux on how to join inbound and outbound streams in 
WebSocketHandler#35572 - Fix 
idrefexample in reference manual #35560 - Fix URI Patterns docs in WebMVC and WebFlux Request Mapping #35551
 - Allow event listener method declared with multiple event classes to take a single parameter that is assignable from all of those event classes #35506
 - Improve Task Javadoc about Runnable wrapping #35394
 
π¨ Dependency Upgrades
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Entea, @IMurzich, @hosea, @maziyarbahramian, @mlichtblau, @nstdio, @reckart, and @reda-alaoui
v7.0.0-M9
β New Features
- Align 
JpaTransactionManagerdefault fornestedTransactionAllowedflag #35457 - Introduce 
onRetryPolicyInterruption()callback inRetryListener#35442 - Add DataFieldMaxValueIncrementer for SQLite #35440
 - Consistent support for non-default NIO.2 FileSystems #35435
 - Include exceptions for previous attempts in 
RetryExceptionthrown for anInterruptedException#35434 - Include current exception in log message for failed retry attempt #35433
 - Remove HttpServiceClient Annotation Support #35431
 - Deprecate 
put(MergedContextConfiguration, ApplicationContext)inContextCache#35415 - ServerSentEventHttpMessageReader should process empty data lines #35412
 - Make it possible to stream "application/grpc" in Spring MVC via Flux #35401
 - Add createException method to ConvertibleClientHttpResponse in RestClient #35391
 - Consider throwing an error if 
setVersionRequiredandsetDefaultVersionare called onApiVersionConfigurer#35387 - Accept 
maxAttempts(0)inRetryPolicybuilder #35362 - Generate consistent validation error messages in 
RetryPolicy#35355 - Drop support for Undertow as it is not Servlet 6.1 compatible #35354
 - Expose retry attempts in RetryException #35351
 - RetryException#getCause should not be nullable #35332
 - Refine CORS logging for non-processed requests due to no CORS configuration #35314
 - Refine Jackson 3 constructors to accept only 
JsonMapperinstances for JSON #35282 - Revise 
StartupStepto implementAutoCloseable#35277 - Add compression support in JdkClientHttpRequestFactory #35225
 - Add support for Micrometer context propagation in Kotlin coroutines #35185
 - Add support for Forwarded By HTTP header #34683
 - Update HttpStatus to align with RFC9110 where relevant #32870
 ContextCacheshould close evicted context before loading new context #21007
π Bug Fixes
- Refine 
Nullnessfor Kotlin functions returningUnit#35420 - Invalid Nullness information for Kotlin properties #35419
 ApiVersionConfigurer.setVersionRequired(...)does not result inMissingApiVersionException#35386- RestTestClient returns null response body #35385
 - Interface client methods that return InputStreams do not throw exceptions on bad HTTP status codes #35375
 @Retryablecannot be used with with@HttpServiceClientdue toNullPointerException#35353- Wrong PathPattern parsing for segments ending in '**' #35339
 RetryTemplateshould officially exposeRetryExceptiontoRetryListener.onRetryPolicyExhaustion()#35334- Restore mixed usage support with uri() and queryParam() for query parameters in AbstractMockHttpServletRequestBuilder.buildRequest() #35329
 - Kotlinx Serialization doesn't work when using ResponseEntity #35281
 - "Failed to read candidate component class" with classfile metadata reading #35252
 
π Documentation
- Docs: Rework mvc-jsp section with JavaConfig example (per review feedback) #35444
 - Document programmatic retry support in the reference manual #35436
 - Improve reference docs on API versioning by path #35421
 - Fix typo in websocket doc #35393
 - Refine null-safety tooling introduction #35383
 - Fix 
@HttpServiceClientexample in reference manual #35363 - Improve wording for transactional rollback rule semantics #35346
 - Document semantics of 
RetryExceptionregarding cause and suppressed exceptions #35337 - Formatting issue in RestTestClient documentation #35328
 
π¨ Dependency Upgrades
- Upgrade to Jackson 3.0.0-rc9 and 2.20.0 #35439
 - Upgrade to Jetty 12.1.0 #35345
 - Upgrade to Kotlin 2.2.20 #35414
 - Upgrade to Micrometer 1.16.0-M3 #35453
 - Upgrade to Reactor 2025.0.0-M7 #35452
 
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Dongnyoung, @J-unStiN, @NeatGuyCoding, @gustaavv, @izeye, @remeio, @shakuzen, and @spicydev
v6.2.11
β New Features
- Missing 
@Nullableon JsonPathAssertions.isEqualTo #35445 - Graceful fallback for non-default NIO.2 FileSystems #35443
 - Avoid thread pinning in SseEmitter, ResponseBodyEmitter #35423
 - Detect Informix error codes as 
DuplicateKeyException#35400 - Inconsistent nullability for 
String valuearguments inResponseCookiefrom*()factory methods #35377 - Revisit 
taskTerminationTimeoutsemantics onSimpleAsyncTaskExecutor/Scheduler#35372 StandardEvaluationContext.setBeanResolvershould allow@Nullable BeanResolver#35371
π Bug Fixes
- "mainThreadPrefix = null " Causing multiple background bean locks to be blocked #35409
 - Annotation not found on parameter in overridden method unless method is public #35349
 - Annotations on overridden methods not found in type hierarchy with unresolved generics #35342
 - Performance degradation when using singleton beans with Provider #35330
 - JettyClientHttpConnector buffer leak in Spring Framework 6.2 #35319
 - Spring application hangs on shutdown with 
@Scheduled(cron=β¦) when custom ScheduledExecutorService bean is defined (Java 19+) #35316 
π Documentation
- Document potential need to use 
Mockito.doXxx()to stub a@MockitoSpyBean#35410 - Fix links to Reactive Libraries and RestTemplate #35392
 - Fix broken link in WebDriver docs #35374
 - Document Web DataBinder support for RouterFunction #35367
 - Improve documentation for 
ApplicationEventsto clarify recommended usage #35335 - Document terms and units in 
DataSize.parse()#35298 - Refine 
@ContractJavadoc #35285 - Correct the default value of nestedTransactionAllowed in JpaTransactionManager javadoc #35212
 
π¨ Dependency Upgrades
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Dockerel, @Kehrlann, @acktsap, @khj68, @ngocnhan-tran1996, @scordio, and @sgflt
v7.0.0-M8
β New Features
- Only add 
httpServiceProxyRegistrybean when necessary #35307 - Introduce 
@Proxyableannotation for bean-specific proxy type #35296 - Introduce bean definition attribute for enforcing an interface-based proxy #35293
 - Let Spring Boot consistently switch to CGLIB proxies for any proxy processor (including 
@Retryable,@Asyncetc.) #35286 - HTTP method support in MappedInterceptor #35273
 - Post process outgoing messages in JmsClient #35271
 - Introduce 
ConfigurableApplicationContext.pause()andSmartLifecycle.isPauseable()#35269 - Provide support to configure request interceptors in RestTestClient #35268
 - Provide more control over validation in DefaultApiVersionStrategy #35267
 - PathApiVersionResolver should not be nullable #35265
 - Replace 
useRequestParamwithuseQueryParaminApiVersionConfigurerto align with client #35263 - Add support for MediaType in ApiVersionInserter #35259
 - ApiVersionConfigurer misconfiguration is hard to detect when no version resolvers are added #35256
 - Support HttpServiceClient annotation #35244
 - Prefer mapping without version for requests without a version #35237
 - Provide 
@WebSocketScopeannotation and publicSCOPE_WEBSOCKETconstant (for consistency with@RequestScopeand co) #35235 - Allow getting receipt from StompSession.Subscription.unsubscribe() #35224
 - Support wildcard path elements at the start of path patterns #35213
 - Improve handling of request parameter without values in MockMvc #35210
 - Display original request URI in NoResourceFoundException message #34553
 - Add RestTestClient #34428
 - Support Hibernate StatelessSession [SPR-2495] #7184
 
π Bug Fixes
- Fix 
JacksonJsonSockJsMessageCodecimports #35309 - IllegalStateException: No API version attribute #35236
 
π Documentation
- Document constraints for HTTP range requests #35227
 
π¨ Dependency Upgrades
- Upgrade to Hibernate ORM 7.1 #35308
 - Upgrade to Jackson 3.0.0-rc6 and 2.19.2 #35228
 - Upgrade to Jackson 3.0.0-rc8 and 2.20.0-rc1 #35295
 - Upgrade to Jetty 12.1.0.beta3 #35233
 - Upgrade to Micrometer 1.16.0-M2 #35311
 - Upgrade to Reactor 2025.0.0-M6 #35310
 
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@FBibonne, @NeatGuyCoding, @SRIRAM9487, @Songdoeon, @philwebb, and @rworsnop
v6.2.10
β New Features
- Optimize NIO path resolution in 
PathEditor#35304 - Make 
typeinProblemDetailnullable #35294 - Refine UriUtils#decode and StringUtils#uriDecode implementation and documentation #35253
 - Provide configurable 
useCachesoption forURLConnectionusage inUrlResource(avoiding jar file leak) #35218 
π Bug Fixes
@Scheduledtasks running inSimpleAsyncTaskSchedulerare interrupted immediately on context close #35254ScriptUtils.executeSqlScript()does not support multiple results per statement #35248- Successful Autowiring Dependent on Configuration ordering and Primary Bean flag #35239
 - Locale parameter in MessageSource#getMessage methods should be nullable #35230
 - Allow any 
@Transactionalpropagation for@TransactionalEventListenerwith BEFORE_COMMIT phase #35150 - Catalog name should be handled with the provided case #35064
 - Accept support for generated keys column name array on HSQLDB and Derby as well #34790
 - Handle direct CanncelationException on timeout in JdkClientHttpRequest #34721
 
π Documentation
- Add documentation of RequestMapping about SpEL #35232
 - Document SqlBinaryValue behaviour with PostgreSQL #34786
 
π¨ Dependency Upgrades
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Allan-QLB, @carsago, @cw-dimedis, and @giampa91
v7.0.0-M7
β New Features
- LocalDataSourceJobStore should re-initialize statically registered Quartz ConnectionProvider on context restart #35208
 - Make rootObject parameter consistently nullable #35206
 - Refine multipart converter registration in HttpMessageConverters #35203
 - Introduce 
getSource()inApplicationContextEventwith covariant return type #35197 - Introduce 
ContextRestartedEventas a subtype ofContextStartedEvent#35194 - Align HttpMessageConverters builder with WebFlux codecs variants #35187
 - Transaction-scoped resource binding in 
TransactionSynchronizationManager#35182 - Use flexible generics nullness in 
RestClient.RequestHeadersSpec.ExchangeFunction#35180 - Introduce 
ConfigurableApplicationContext.restart()method #35171 - Pause unused application contexts in the TestContext framework #35168
 - Skip initialization of a 
NullBean#35165 - Short-circuit matching algorithm in 
InstanceFilter#35161 - Support direct matching against exceptions in 
ExceptionTypeFilter#35160 InstanceFilterandExceptionTypeFiltershould setmatchIfEmptytotrueby default #35158- Require explicit constraints in 
@Contract#35157 - Specify fetchSize/maxRows/queryTimeout per statement in JdbcClient #35155
 - Include MethodParameter[] parameters in HttpRequestValues.Processor #35148
 - Deprecate 
DaoSupportclasses #35145 - Remove 
maxDuration/maxElapsedTimesupport fromRetryPolicy#35144 - Introduce 
@ConcurrencyLimitannotation based onConcurrencyThrottleInterceptor#35133 - Consistently implement 
toString()inBackOffstrategies #35120 - Support API versioning for functional endpoints #35113
 - Migrate 
orm.hibernate5toorm.jpa.hibernatepackage for Hibernate ORM 7.0 #35111 - Redesign 
RetryPolicyto directly incorporateBackOff#35110 - Ability to limit list of supported API versions to explicitly configured ones for Spring MVC #35105
 - Refine nullability of 
PropertyResolver.getProperty(key: String)extension #35104 - Support for exposing additional object types in 
SmartFactoryBean#35101 - Add missing 
@NullabletoMethodInvoker::setArgumentsparameter #35089 - Support 
@RequestBodyin interface method when computing "consumes" condition #35086 - Consistent validation of supported API versions #35082
 - Resolve optional HandlerMethod parameter of 
@ExceptionHandlermethod to null #35067 - Add ability to decorate HttpExchangeAdapter through HttpServiceProxyFactory #35059
 - Introduce 
BuilderAPI and factory methods forRetryPolicy#35058 - Revise 
RetryTemplatefor alignment with Reactor (in preparation for@Retryable) #35057 - Add ApiVersionResolver based on parameter in media type #35050
 - Support deprecation information in API versioning #35049
 - Add support for configuring 
SslInfoinWebTestClient#35042 - Make built-in 
RetryPolicyimplementationsfinal#35040 - Specify flexible generics nullness in spring-jdbc #34911
 - Allow usage of 
@CheckReturnValueon types and constructors #34910 - Support repeatable writes in FormHttpMessageConverter#writeMultipart #34859
 - Convert applicable methods in 
Scopetodefaultmethods #34757 - Add public method to get bean order #34712
 - Discard further rows once maxRows has been reached #34709
 - Support 
DefaultWebFilterChainallowing the current filter to provide its name explicitly #34702 - API Versioning Support #34565
 - Introduce 
@RetryableAOP support (based oncore.retryand Reactor retry functionality) #34529 - Revisit converters and codecs default setup in HTTP stacks #33894
 ConfigurationBeanNameGeneratorfor@Bean-annotated methods #33448- Qualified 
EntityManager/EntityManagerFactoryinjection (aligned with Jakarta Persistence 3.2) #33414 - Introduce JmsClient with customizable send/receive operations #32501
 - Allow conditional handling of 404 with HTTP Interface clients #32105
 - Allow to set TTL (and other QoS-related settings) on a per-message (and/or per-send) basis #26840
 
π Bug Fixes
- Allow ordering of 
HttpMessageConverterss throughWebMvcConfigurer.configureMessageConverters(HttpMessageConverters.Builder)#35177 - Content-Disposition response header duplicated for failed StreamingResponseBody #35116
 - CachingMetadataReaderFactory does not cache all metadatareader calls #35112
 sslInfo()should return the builder forMockServerHttpRequest#35075- HttpService group adapters could not be instantiated in a native image #35038
 
π Documentation
- Improve URLs in Validation chapter of the reference manual #35181
 - Update Spring MVC message converters documentation #35166
 - Add a note about Field/Method vs. TYPE_USE annotations in reference docs #35098
 - Document intention of 
toString()inHandlerMethod#35055 - Add section in docs on byte-range requests in Spring MVC and WebFlux #35052
 
π¨ Dependency Upgrades
- Upgrade to Jetty 12.1.0.beta1 #35084
 - Upgrade to Kotlin 2.2.0 #34453
 - Upgrade to Micrometer 1.16.0-M1 #35170
 - Upgrade to Reactor 2025.0.0-M5 #35169
 
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Allan-QLB, @NeatGuyCoding, @OlgaMaciaszek, @Pankraz76, @izeye, @ngocnhan-tran1996, @quaff, @remeio, @renatomameli, @scordio, and @wonyongg
v6.2.9
β New Features
OncePerRequestFiltercannot be CGLib-proxied #35198- Consistently catch 
InaccessibleObjectExceptionnext toIllegalAccessException#35190 - Introduce 
Date-to-InstantandInstant-to-Dateconverters #35175 - Consistent nullability and exception declarations in 
AbstractMessagingTemplatehierarchy #35159 - Register runtime hints for 
Instant-to-Timestampconversion #35156 - Improve handling of 
ResponseEntity<?>in Spring MVC #35153 - Support 
@CacheConfig("myCacheName")declarations for simplified configuration #35152 - Declare 
messageSelectorparameters inJmsOperationsas@Nullable#35151 - Add getter for 
OverflowStrategyinConcurrentWebSocketSessionDecorator#35132 - Use preset Content-Type for streaming and reactive responses in Spring MVC #35130
 - Leniently tolerate null 
@Aspectbean #35074 DataAccessResourceFailureExceptionthrown when transaction times out on PostgreSQL #35073MethodInvokingFactoryBeanfails to invoke publicly exported methods overridden by internal classes when using JPMS #34028
π Bug Fixes
- Restore preference for interface (most abstract) method in 
getPubliclyAccessibleMethodIfPossible#35189 - Make 
targetBeanNamefield in AbstractBeanFactoryBasedTargetSourceprotectedto avoid exceptions in logging andtoString()#35172 - Fix inconsistencies in 
StaticListableBeanFactory#35119 - Support StreamingHttpOutputMessage in RestClient #35102
 - When building 
DELETErequests, the request body is not used inJdkClientHttpRequest.buildRequest#35068 - AOT-generated bean registration file contains "too many constants" when building with many beans #35044
 - Prevent cache pollution by storing only the factories #34732
 - WebFlux decodes wildcard content-types as form-data/multipart #34660
 - AOT-generated CGLib proxies do not contain method overrides #34642
 - 500 response for ResourceHttpRequestHandler when requested range is not satisfied #34490
 
π Documentation
- Document how to register runtime hints for convention-based conversion #35178
 - Link to 
@ContextConfigurationJavadoc from reference manual #35088 
π¨ Dependency Upgrades
- Upgrade to JUnit 5.13.3 #35103
 - Upgrade to Micrometer 1.14.9 #35202
 - Upgrade to Reactor 2024.0.8 #35201
 
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Meijuh, @RazorNd, @chenggwang, @izeye, @mjd507, @ngocnhan-tran1996, and @philwebb